关于微信Js签名的生成讲解
1、当微信js签名不成功时,微信公众号不会有任何提示,什么 wx.ready、wx.error都不会执行,此时可以通过微信js 调试客户端定位错误。
2、微信js签名,可以用微信js签名工具(https://work.weixin.qq.com/api/jsapisign)对比你的签名是否正确:签名条件:jsapi_ticket(生成时又需要access_token)
a)引入js: <script src='https://res.wx.qq.com/open/js/jweixin-1.0.0.js'></script>
b)调用wx.config方法,如:
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appid: "@weixinjs.appid", // 必填,公众号的唯一标识
timestamp: "@weixinjs.timestamp", // 必填,生成签名的时间戳
noncestr: "@weixinjs.noncestr", // 必填,生成签名的随机串
signature: "@weixinjs.signature",// 必填,签名,见附录1
jsapilist: ['checkjsapi', 'scanqrcode'] // 必填,需要使用的js接口列表,所有js接口列表见附录2
});
3、 当调用扫一扫或其它功能在子页iframe中,在子页中注册签名会失败,所以将注册签名放大主页面中,子页面调用此主页面方法,例:
父页面:
//注:因为扫一扫在子页iframe中,在子页中注册签名会失败,所以将注册签名放大主页面中,子页面调用此主页面方法
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appid: "@weixinjs.appid", // 必填,公众号的唯一标识
timestamp: "@weixinjs.timestamp", // 必填,生成签名的时间戳
noncestr: "@weixinjs.noncestr", // 必填,生成签名的随机串
signature: "@weixinjs.signature",// 必填,签名,见附录1
jsapilist: ['checkjsapi', 'scanqrcode'] // 必填,需要使用的js接口列表,所有js接口列表见附录2
});
子页面:parent.wx.scanqrcode
parent.wx.scanqrcode({
needresult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scantype: ["qrcode", "barcode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
console.log(res);
var result = res.resultstr; // 当needresult 为 1 时,扫码返回的结果
}
});