wx.config初始化提示 "config:invalid signature"?
网页引入JS-SDK,在微信环境加载,wx.config初始化过程中,总是提示{"realAuthUrl": "", "errMsg": "config:fail"},没有更具体的报错信息,很难定位排查,微信客服和技术支持不知道如何联系,只能在这里留贴待处理了,真的很难用!!! 我的项目时react hooks 框架写的 在 index.js 中,判断微信环境,引入了 微信环境 依赖文件 const UA = window.navigator.userAgent;
let isWechatMP = UA.indexOf("MicroMessenger") > -1 || UA.indexOf("miniProgram") > -1;
let isAliPayMP = UA.indexOf("AlipayClient") > -1;
if(isWechatMP) {
console.log("初始化微信小程序依赖")
let script = document.createElement("script");
script.src = "https://res.wx.qq.com/open/js/jweixin-1.6.0.js";
document.body.appendChild(script);
script.onload = function () {
// 使用公众号appid 进行定位权限等的注册
initWxConfig({ appId: "wx7243576362df1f78" })
}
}
}
import { getWxSignData } from "api"
export default async function initWxConfig({ appId }) {
if (window.wx) {
const url = window.location.href.split('#')[0];
const { result, errcode } = await getWxSignData( {appId, url })
if (errcode === "0000") {
const { timestamp, nonceStr, signature } = result;
window.wx.config({
debug: true,
appId,
timestamp, // 必填,生成签名的时间戳
nonceStr, // 必填,生成签名的随机串
signature,// 必填,签名
jsApiList: ["getLocation"],
})
window.wx.ready(function(){
console.log('微信JS-SDK注册的appId:', appId)
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
console.log("微信JS-SDK初始化完成===")
});
window.wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
console.error("微信JS-SDK初始化失败===", res)
});
} else {
return false
}
} else {
console.error("微信小程序环境未初始化")
setTimeout(() => {
initWxConfig({appId})
}, 1000)
return false
}
}
当前页面,使用hash路由,按照微信JS-SDK技术文档,使用#之前的地址:https://xxxxx/app-h5/h5-travel-planning 对比微信JS-SDK技术文档,公众号管理台已经补充了js安全域名的配置:xxxxx/app-h5/h5-travel-planning 安全域名的校验文件:https://xxxxx/app-h5/h5-travel-planning/xxxx.txt 也可以访问到的; 但是在微信客户端加载该页面时,还是提示如下截图所示的问题,没有具体的报错信息,很难定位问题 [图片]