微信公众号签名错误的排查方法
在使用微信开放标签的时候,需要配置一堆堆相关的配置,其中有一个就是微信签名
1.配置开放标签的前置配置参数
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: [], // 必填,需要使用的JS接口列表
openTagList: [] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
});
2.签名的生产规则
微信签名是通过JS-SDK权限签名算法类进行生产的。
首先在生成签名之前必须获取jsapi_ticket这个公众号用于调用微信JS接口的临时票据,正常情况下有效期为7200秒(如果需要处理相关业务需要把这个ticket进行保存,计算时间,超过一定时间后重新进行获取),jsapi_ticket是通过access_token来获取,而access_token正常情况下有效期也是7200秒,access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token,目前本文中使用的是第三方平台获取的(其实计算获取access_token,再用access_token获取jsapi_ticket)。获取了jsapi_ticket,此时就可以通过noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分),并且将这四个参数按照字段名的ASCII 码从小到大排序都转为小写后,按照key1=value1&key2=value2…的形式进行拼接成字符串,再对这个拼接字符串进行sha1加密,注意所有字段名和字段值都需要采用原始值并且不进行URL 转义操作。此时sha1加密后的字符串就是最终的signature签名。
3.微信公众号签名错误的排查方法
即出现invalid signature无效的签名的处理方法。主要是确保查看每个参数是否按照规则要求,是否有空值,或者生成的方法是否正确这些方面,目前排查方法可以从下面几种情况进行排查:
- 点赞
- 收藏
- 关注作者
评论(0)