如何利用微信JSSDK调用微信扫一扫功能?具体内容如下

1. 确保有 调起微信扫一扫接口 权限,测试号可能不行;
2. 导入相关JS
<script type="text/javascript" http://test.com/zepto_touch.js"></script> <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
3. 页面触发扫码元素
<img src="../../../images/right.jpg" onclick="scanCode()" class="img">
4. 相关JS代码
<script type="text/javascript">
var _appId = "wxz88dbd30e5580e59";
var _data = {
appId : _appId,
url : location.href,
t : Math.random()
};
var _getWechatSignUrl = 'http://test.com/getWechatSign.do';
// 获取微信签名
$.ajax({
url : _getWechatSignUrl,
data : _data,
success : function(o) {
console.log(o);
if (o.returnCode == "00") {
wxConfig(o.detail[0].timestamp, o.detail[0].nonceStr, o.detail[0].signature);
}
}
});
function wxConfig(_timestamp, _nonceStr, _signature) {
//alert('获取数据:'+_timestamp+'\n'+_nonceStr+'\n'+_signature);
console.log('获取数据:' + _timestamp + '\n' + _nonceStr + '\n' + _signature);
wx.config({
debug : true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId : _appId, // 必填,公众号的唯一标识
timestamp : _timestamp, // 必填,生成签名的时间戳
nonceStr : _nonceStr, // 必填,生成签名的随机串
signature : _signature,// 必填,签名,见附录1
jsApiList : [ 'onMenuShareTimeline', 'onMenuShareAppMessage',
'onMenuShareQQ', 'onMenuShareWeibo', 'scanQRCode' ]
// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
}
function scanCode() {
wx.scanQRCode({
needResult : 1,
scanType : [ "qrCode", "barCode" ],
success : function(res) {
console.log(res)
alert(JSON.stringify(res));
var result = res.resultStr;
},
fail : function(res) {
console.log(res)
alert(JSON.stringify(res));
}
});
}
</script>
5. 获取签名接口getWechatSign.do各值生成方式
timestamp
Long timestamp = System.currentTimeMillis() / 1000;
nonceStr
String nonceStr = RandomStringUtils.randomAlphanumeric(16);
signature
public static String getSign(String jsapi_ticket, String noncestr, Long timestamp, String url)
throws NoSuchAlgorithmException {
String shaStr = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + noncestr + "×tamp=" + timestamp + "&url="
+ url;
MessageDigest mDigest = MessageDigest.getInstance("SHA1");
byte[] result = mDigest.digest(shaStr.getBytes());
StringBuffer signature = new StringBuffer();
for (int i = 0; i < result.length; i++) {
signature.append(Integer.toString((result[i] & 0xff) + 0x100, 16).substring(1));
}
return signature.toString();
}
6. 微信参考文档
获取access_token https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
获取jsapi_ticket https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# JSSDK
# 微信
# 扫一扫
# JS 调用微信扫一扫功能
# 基于JavaScript代码实现微信扫一扫下载APP
# JS 实现微信扫一扫功能
# 必填
# 一扫
# 见附录
# 会在
# 时才
# 若要
# 具体内容
# 大家多多
# 返回值
# 客户端
# 文档
# function
# console
# data
# success
# returnCode
# log
# wxConfig
# href
# Math
相关文章:
建站主机类型有哪些?如何正确选型
建站之星如何助力网站排名飙升?揭秘高效技巧
建站主机与服务器功能差异如何区分?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何在橙子建站上传落地页?操作指南详解
建站之星安装后界面空白如何解决?
如何在局域网内绑定自建网站域名?
建站之星导航如何优化提升用户体验?
如何在IIS服务器上快速部署高效网站?
公司门户网站制作流程,华为官网怎么做?
如何通过宝塔面板实现本地网站访问?
建站之星3.0如何解决常见操作问题?
Thinkphp 中 distinct 的用法解析
东莞专业制作网站的公司,东莞大学生网的网址是什么?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
seo网站制作优化,网站SEO优化步骤有哪些?
C#怎么创建控制台应用 C# Console App项目创建方法
网站制作员失业,怎样查看自己网站的注册者?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何在宝塔面板创建新站点?
如何高效完成独享虚拟主机建站?
微信h5制作网站有哪些,免费微信H5页面制作工具?
南平网站制作公司,2025年南平市事业单位报名时间?
如何高效利用200m空间完成建站?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
建站之星在线客服如何快速接入解答?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速生成橙子建站落地页链接?
已有域名如何免费搭建网站?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
宝塔新建站点报错如何解决?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
如何通过VPS搭建网站快速盈利?
如何用AWS免费套餐快速搭建高效网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
简单实现Android验证码
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
c# 在ASP.NET Core中管理和取消后台任务
如何用狗爹虚拟主机快速搭建网站?
,在苏州找工作,上哪个网站比较好?
建站上传速度慢?如何优化加速网站加载效率?
建站之星如何配置系统实现高效建站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何快速生成ASP一键建站模板并优化安全性?
家具网站制作软件,家具厂怎么跑业务?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
建站之星如何取消后台验证码生成?
网站制作话术技巧,网站推广做的好怎么话术?
*请认真填写需求信息,我们会在24小时内与您取得联系。