主要是config 前后url 注册不一致,加载的时候存一下缓存即可, main.js new Vue({ router: router, store, render: h => h(App), created() { localStorage.setItem('firstEntryUrl', location.href); } }).$mount('#app') wechat.js function waitUserConfirmPay(packageInfo) { return new Promise((resolve, reject) => { let url = window.localStorage.getItem('firstEntryUrl') const jsApiList = ['requestMerchantTransfer']; console.log('注册的url', url) window.axios({ method: 'GET', url: '/**/**/getJsSignature?url=' + url, headers: {'Content-Type': 'application/json' } }).then(result => { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: result.appid, // 必填,公众号的唯一标识 timestamp: result.timestamp, // 必填,生成签名的时间戳 nonceStr: result.noncestr, // 必填,生成签名的随机串 signature: result.signature, // 必填,签名 jsApiList // 必填,需要使用的JS接口列表,JSAPI调起用户确认收款 }) wx.ready(function () { // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 console.log('微信调用ready表示成功') wx.checkJsApi({ jsApiList, success: function (res) { if (res.checkResult['requestMerchantTransfer']) { // eslint-disable-next-line no-undef WeixinJSBridge.invoke('requestMerchantTransfer', { mchId: process.env.MCH_ID, appId: process.env.APP_ID, package: packageInfo, }, function (res) { resolve(res); } ); } else { alert('你的微信版本过低,请更新至最新版本。'); reject(new Error('微信版本过低')); } }, fail: function(res) { reject({ payFail: res }) } }); }) wx.error(function (res) { // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 console.log('wxOpen微信调用错误' ,res) reject(new Error('微信配置错误')); }) }).catch(error => { console.error('请求签名失败', error); reject(error); }); }); }
H5页面引入jssdk wx.config报错:config:invalid signature ?应用jssdk 分享给朋友功能 调用页面url :https://www.maitianshouwang.com/demo 使用官方签名工具检验签名均正确,但是还是会报此错误 为什么? 1、官方签名校验工具结果: [图片] 2、wx.config配置参数: [图片] 3、当前调用页面URL: [图片] 4、js安全域名: [图片]
02-18