JSSDK调⽤扫⼀扫功能的⽅法
如何利⽤JSSDK调⽤扫⼀扫功能?具体内容如下
1. 确保有调起扫⼀扫接⼝权限,测试号可能不⾏;
2. 导⼊相关JS
<script type="text/javascript" test/zepto_touch.js"></script>
<script type="text/javascript" src="res.wx.qq/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";
编程入门先学js
var _data = {
appId : _appId,
url : location.href,
t : Math.random()
};
var _getWechatSignUrl = 'test/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);
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 = sultStr;
},
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 = Instance("SHA1");
byte[] result = mDigest.Bytes());
StringBuffer signature = new StringBuffer();
for (int i = 0; i < result.length; i++) {
signature.String((result[i] & 0xff) + 0x100, 16).substring(1));
}
String();
}
6. 参考⽂档
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论