报错:config:fail,Error: 系统错误,错误码:63002,invalid signature [20201210 15:51:15][]

来源:4-7 生成JS-SDK签名算法(2)

立志成为大佬的咸鱼

2020-12-10

//获取配置信息
router.get(’/jssdk’,async function(req,res){
let url = req.query.url;
//获取基础token-全局唯一接口调用凭据
let result = await common.getToken();
if(result.code == 0){
let token = result.data.access_token;
cache.put(‘token’,token);
//获取ticket
let ticket = await common.getTicket(token);
if(ticket.code == 0){
let data = ticket.data;
let params = {
noncestr:util.createNonceStr(),
jsapi_ticket: data.ticket,
timestamp:util.createTimeStamp(),
url
};
console.log(‘params-------’,params);
//转换成json并排序
let str = util.raw(params);
//sha1加密
let sign = createHash(‘sha1’).update(str).digest(‘hex’);
let resData = {
appId: config.wx.appId, //公众号的唯一标识
timestamp: params.timestamp, //签名的时间戳
nonceStr: params.noncestr, // 签名的随机串
signature: sign,// 签名
jsApiList: [
‘updateAppMessageShareData’, //分享朋友圈好友
’updateTimelineShareData’, //分享朋友圈
’chooseWXPay’ //微信支付
]// 需要使用的JS接口列表
};
res.json(util.handleSuc(resData));
}
}
});
这是服务的的代码

// 获取微信配置信息
getWechatConfig(){
this.$http.get(API.wechatConfig+’?url=http://m.crpurse.com’).then(function(response){
let res = response.data;
if(res.code == 0){
let data = res.data;
console.log(‘data–’,data);
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appId, // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature,// 必填,签名
jsApiList: data.jsApiList // 必填,需要使用的JS接口列表
});
//调取分享方法
wx.ready(()=>{
util.initShareInfo(wx);
})
}
})
}

initShareInfo(wx){
let shareInfo = {
title: ‘慕课支付分享专项课程’, // 分享标题
desc: ‘欢迎学习慕课支付分享专项课程’, // 分享描述
link: ‘m.crpurse.com’, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: ‘’, // 分享图标
}
wx.onMenuShareAppMessage(shareInfo);
wx.onMenuShareTimeline(shareInfo);
wx.onMenuShareQQ(shareInfo);
wx.onMenuShareQZone(shareInfo);

}
这是前端代码

百度了一下 说这个问题的url不一致照成的

JS接口安全域名修改
设置JS接口安全域后,通过关注该测试号,开发者即可在该域名下调用微信开放的JS接口,请阅读微信JSSDK开发文档。
域名
m.crpurse.com
这是我测试号上面的配置 和前端代码里的url是一样的啊 求解

写回答

1回答

河畔一角

2020-12-12

你的url地址,应该动态获取,不应该写死。

API.wechatConfig+’?’+encodeURIComponent(location.href)

0
0

微信分享与支付专项课程 (公众号 小程序(云))

使用Vue2.6/小程序+Node技术栈,详解用户授权登录、分享、支付前后端的各个环节

729 学习 · 180 问题

查看课程