微信公众号 JS SDK config 签名错误,求助
发现之前的分享JS已经失效,查了一下资料,说是需要使用微信JS-SDK才能自定义分享。
在使用JS-SDK的时候,通过config接口注入权限验证配置一直报invalid signature签名错误。
微信官方提供的验证签名算法的链接如下:
http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
对比了一下结果,相同的参数,得到的sign值是一样的。
我是使用ajax调用服务端接口实现加密和配置的,服务端直接返回config结构:
javascript
function GetWeiXinJsapiConfig() { var url = encodeURIComponent(location.href.split('#')[0]); alert('url is ' + url); $.ajax({ type: "POST", url: "/XXX/GetWeiXinJsapiConfig", data: "{'curUrl': '" + url + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { console.log(data.d); var configData = $.parseJSON(data.d); console.log('sig is ' + configData.signature); wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: configData.appid, // 必填,公众号的唯一标识 timestamp: configData.timestamp, // 必填,生成签名的时间戳 nonceStr: configData.noncestr, // 必填,生成签名的随机串 signature: configData.signature, // 必填,签名,见附录1 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ alert('OK---'); wx.onMenuShareAppMessage({ title: shareTitle, // 分享标题 desc: descContent, // 分享描述 link: lineLink, // 分享链接 imgUrl: imgUrl, // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); }); wx.error(function(res){ // alert("err" + res); }); }, error: function(data) { var is_json; var json; try { var json = $.parseJSON(data.responseText); is_json = true; } catch (e) { is_json = false; } if (is_json) { // add_json_error(data, json); console.log(json.Message); } else { // Show the response text as plaintext. var status = data.status; var statusText = data.statusText; // If we've hit a 400 (Bad Request), show the responseText. if (status === 400) { statusText += ": " + data.responseText; } console.log(status + " " + statusText); } }, complete: function() { } }); }
这是服务端返回的json:
javascript
{ "appid":"wxab33b5f4670fdb6e", "timestamp": "1430853479", "noncestr": "WecWkTYHZw4WRR0f", "signature":"b61dec1347cea32e029283209df618709a6c9b0a" }
已经调试了一天了,还是没有进展,求助。
不知道大家有没有遇到类似的问题,多谢。
下面是调试时的一些记录:
noncestr: "Nr1KncfjMAULdy2v"
jsapi_ticket: "sM4AOVdWfPE4DxkXGEs8VAM6b3b2DY72qJymJD2HDauxX1-fxTB1E-eWx3o1ZfI6kFZjMBHQP6NDrRTBlLeZbw"
timestamp:"1430851580"
url: "http%3A%2F%2Fm.yanchuyi.com%2Fwx%2Fpiao%2Fticket_841_test.html"
sign: "72bff8854ffda1d20999c054663a746f26a7613a"
微信分享代码 微信js-sdk Ajax 微信公众平台 JavaScript