已解决 我这里的问题是生成签名要当前页面完整的url,开始只传了host。。。。
微信公众号开发调用jssdk,配置时总是 invalid signature ,提示非法签名?首先贴上必要信息: 开发者ID(AppID):wx3806a4c78e7bf173 原始ID:gh_2314fcde77a4 [图片] [图片] 以上是公众号本身的配置 接下来放一下,我这边的config代码 [代码]const modeList = [[代码][代码] [代码][代码]'updateAppMessageShareData'[代码][代码],[代码][代码] [代码][代码]'updateTimelineShareData'[代码][代码],[代码][代码] [代码][代码]'onMenuShareAppMessage'[代码][代码],[代码][代码] [代码][代码]'onMenuShareTimeline'[代码][代码],[代码][代码]];[代码] [代码]const initConfig = async (res) => {[代码][代码] [代码][代码]const options = {[代码][代码] [代码][代码]debug: !isProd,[代码][代码] [代码][代码]appId: res.appId, [代码][代码]// 必填,公众号的唯一标识[代码][代码] [代码][代码]timestamp: res.timestamp, [代码][代码]// 必填,生成签名的时间戳[代码][代码] [代码][代码]nonceStr: res.nonceStr, [代码][代码]// 必填,生成签名的随机串[代码][代码] [代码][代码]signature: res.signature, [代码][代码]// 必填,签名,见附录1[代码][代码] [代码][代码]jsApiList: modeList,[代码][代码] [代码][代码]}[代码][代码] [代码][代码]console.log([代码][代码]'config options::----------------------------'[代码][代码], options);[代码][代码] [代码][代码]wx.config(options);[代码][代码] [代码][代码]// ready[代码][代码] [代码][代码]wx.ready(() => {[代码][代码] [代码][代码]console.log([代码][代码]'config success::----------------------------'[代码][代码]);[代码][代码] [代码][代码]// 分享到朋友圈[代码][代码] [代码][代码]wx.updateTimelineShareData({[代码][代码] [代码][代码]title: [代码][代码]''[代码][代码], [代码][代码]// 分享标题[代码][代码] [代码][代码]link: [代码][代码]''[代码][代码], // 分享链接[代码][代码] [代码][代码]imgUrl: [代码][代码]''[代码][代码], [代码][代码]// 分享图标[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// 用户确认分享后执行的回调函数[代码][代码] [代码][代码]},[代码][代码] [代码][代码]cancel: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// 用户取消分享后执行的回调函数[代码][代码] [代码][代码]},[代码][代码] [代码][代码]});[代码][代码] [代码][代码]// 分享给朋友[代码][代码] [代码][代码]wx.updateAppMessageShareData({[代码][代码] [代码][代码]title: [代码][代码]''[代码][代码], [代码][代码]// 分享标题[代码][代码] [代码][代码]link: [代码][代码]''[代码][代码], // 分享链接[代码][代码] [代码][代码]imgUrl: [代码][代码]''[代码][代码], [代码][代码]// 分享图标[代码][代码] [代码][代码]desc: [代码][代码]''[代码][代码], [代码][代码]// 分享描述[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// 用户确认分享后执行的回调函数[代码][代码] [代码][代码]},[代码][代码] [代码][代码]cancel: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// 用户取消分享后执行的回调函数[代码][代码] [代码][代码]},[代码][代码] [代码][代码]});[代码][代码] [代码][代码]})[代码][代码] [代码][代码]// error[代码][代码] [代码][代码]wx.error((res) => {[代码][代码] [代码][代码]console.log([代码][代码]'catch config error :: =============== ::'[代码][代码], res);[代码][代码] [代码][代码]})[代码][代码]}[代码]以上代码执行之后出现如下问题 [代码]{[代码][代码] errMsg: [代码][代码]"config:fail,Error: 系统错误,错误码:63002,invalid signature [20190919 17:06:41][]"[代码][代码] jsApiList: [][代码][代码]}[代码]差了错误代码之后,发现是非法签名,好了,我先去了https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign这个校验网站校验了,signature 没有问题两边一致,但是config一直提示非法。 然后我去了https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html这边看常见解决办法。试了个遍。然而并没有效果,另外,恕我直言这个文档真实辣鸡。可能你们的核心已经是小程序了,但是小程序的BUG也一堆没修。 [图片] 然后吐槽一下,这个错误码的返回,之前有返回过config:fail,Error: 系统错误,错误码:63002,invalid signature [20190919 17:06:41][undefind] 这样的格式,还不容易变成 config:fail,Error: 系统错误,错误码:63002,invalid signature [20190919 17:06:41][] 这样我也不知道啥问题,就这几个参数,咱写写明白行不,URL错就提示URL错,就一个签名错误???wtf,这里太笼统了! 好了说到URL错,好网上说99%的错误都是URL导致的,好的尝试了各种办法,并没有什么用,已经调试了不知道几天了,最后只能哀求官方帮我解决一下,帮我看看问题到底在哪里,头发都要秃了。 我用的是SPA (vue) HASH模式(https://xxx.com/#/)取得地址为 https://xxx.com/ 单凡我有一点办法都不会来这请教 综上,请赐教!求快速反馈! 顺便吐槽,标题为什么一定要问号,我就是个陈述句,阐述问题而已!
2020-12-26