场景描述:
h5页面中引入微信JSSDK使用打开小程序功能。弹框提示上述错误,请问问题出在什么地方?
- 已使用微信js接口签名校验工具进行测试
- 已在微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
- "weixin-js-sdk": "^1.6.0"
- access_token和jsapi_ticket均已进行缓存
- 公众号已配置js安全域名
- wx.config 如下
// main.js
// #ifdef H5
import wx from 'weixin-js-sdk';
import http from '@/api/index.js';
(async function() {
// 接口中入参有一个url,直接取location.href.split('#')[0]
const wxData = await http.wx.signature();
alert(JSON.stringify(wxData));
wx.config({
debug: true, // 调试时可开启
appId: 'wxf39a2eaeeddf80a0', // 必填,公众号的唯一标识
timestamp: wxData.timestamp, // 必填,生成签名的时间戳
nonceStr: wxData.nonceStr, // 必填,生成签名的随机串
signature: wxData.signature, // 必填,签名
jsApiList: ['updateTimelineShareData'],
openTagList: ['wx-open-launch-weapp']
});
wx.ready(function() {
// config信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在 ready 函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中
});
wx.error(function(res) {
// config信息验证失败会执行 error 函数,如签名过期导致验证失败,具体错误信息可以打开 config 的debug模式查看,也可以在返回的 res 参数中查看,对于 SPA 可以在这里更新签名
// alert(JSON.stringify(res));
});
})();
// #endif
已解决appId写成了小程序的了,应该是公众号的 开发者ID(AppID)
生成签名时,使用的当前完整url 与 实际不一致