微信 Web App 开发, js-sdk 遇到 invalid signature 等错误,求帮助赠红包

2016-08-03 12:49:51 +08:00
 learnshare

目前的状况:

暂时规划包括支付和录音,支付已完成,并且一切正常。录音部分被 js-sdk 卡住了。

错误描述:

可以确定的是签名算法等后端逻辑没问题。
然后在不同的页面调用 wx.config(),如果只给 jsApiList 'chooseWXPay' 一个参数,则正常执行;如果再添加 'startRecord' 或者更多参数,会在两个不同的页面遇到不同的问题:

  1. app.com/me "config:invalid url domain"
  2. app.com/resource/[resourceId]/detail "config:invalid signature"

寻求帮助:

因为发给 weixin-open@qq.com 的邮件并没有收到回复,所以在这里呼叫一下腾讯或微信团队的朋友,希望能得到帮助。

或者有朋友处理过 js-sdk 录音的功能,也希望能够得到你的帮助。

请联系我 learnshare.hjq#gmail , wechat: LearnShare
或者留下你的联系方式 :)

解决问题发红包(个人出,也努力从老板兜里掏几毛)

感谢各位。

4374 次点击
所在节点    微信
39 条回复
learnshare
2016-08-03 13:23:51 +08:00
各位午休结束了么, HELP !
iloveyou
2016-08-03 13:53:11 +08:00
公众号后台允许的 url 填对没
alichen
2016-08-03 13:54:03 +08:00
问题无非就是管理后台的安全域名配置和前端参数加密
learnshare
2016-08-03 14:07:22 +08:00
@iloveyou
@alichen 后台配置没有问题,支付都是正常的。

前端参数加密 指的是?
xylitolLin
2016-08-03 14:09:58 +08:00
支付和其他功能用的 token 是由区别的,这个有没有看清楚
justfindu
2016-08-03 14:11:33 +08:00
js -jdk 是最不容易出错的...因为只要你填写参数就够了啊
alex321
2016-08-03 14:13:23 +08:00
安全域名检查是否正确,并且确认签名的时候是把完整 url(除了 # 后面的)一起去签名的呃。
learnshare
2016-08-03 14:22:21 +08:00
@xylitolLin 步骤三:通过 config 接口注入权限验证配置 这个 token 是一致的,出错的也是这一步;

@justfindu 现在参数肯定是没问题的,多加了一个 'startRecord' 权限就出问题了,而且不同页面是不同的错误。

@alex321 根据 URL 生成的签名没有问题,用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=cardsign 校验过。
并且 URL 中没有 # 及之后的内容,安全域名也是检查过多次了
xylitolLin
2016-08-03 14:32:03 +08:00
@learnshare

ticket 是有两种的。

https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

要用这个去获取 ticket 喔,注意后面的 type=jsapi
learnshare
2016-08-03 14:37:58 +08:00
@alichen
@alex321

我做了这样的尝试,分别设置安全域名为: abc.comhttp://abc.com

第一种在 PC 端调试工具及微信的第一个页面中提示 "config:ok",微信第二个页面是 "config:invalid signature";
第二种在 PC 端调试工具及微信的第一个页面中提示 "config:invalid url domain",微信第二个页面还是 "config:invalid signature"。
learnshare
2016-08-03 14:40:17 +08:00
@xylitolLin 后端部分用了现成的 Python 微信开发框架,这部分应该没有问题
learnshare
2016-08-03 14:46:15 +08:00
@iloveyou
@alex321

我在 segmentfault 看到有朋友说 URL 中存在 "-" 这个字符会影响签名,因为现在用的测试域名是 app-test.xxx.xxx ,所以我再验证一下这个问题。
alex321
2016-08-03 14:57:54 +08:00
微信这个安全域名的生效周期会怪怪的。
我当年设置的时候,设置好了立马验证提示 config:invalid url domain ,然后第二天就都正常了呃。。
learnshare
2016-08-03 15:05:27 +08:00
pubby
2016-08-03 15:06:19 +08:00
@learnshare
安全域名需要完整域名 xxx.domain.com ,不影响 js-sdk 签名,只会影响“输入框防诈骗提示”,“网页被自动转码”之类的

JS-SDK 的域名 可以只设 domain.com ,不需要完整域名。


URL 中的"-"不会有问题

微信支付的签名和 JS-SDK 签名是独立的,而且根本用不到 access_token/jsapi-ticket
xxxyyy
2016-08-03 15:26:49 +08:00
或许支付不能跟其他的放在一起 config ,你可以试下只传 startRecord 给 jsApiList
learnshare
2016-08-03 16:02:41 +08:00
@pubby Thanks ,看来域名这部分不会有问题

@xxxyyy 单独测试 startRecord 或 hideOptionMenu ,都是第一个页面 OK ,第二个 invalid signature
pubby
2016-08-03 16:15:15 +08:00
@learnshare access_token / jsapi ticket 都缓存起来了吗? access_token 不要每次重新获取,你重新获取后,原来的 jsapi-ticket 都会失效。
alichen
2016-08-03 16:24:20 +08:00
微信 access_token 有失效时间,最好在后端调用的时候存起来
xxxyyy
2016-08-03 16:27:46 +08:00
@learnshare 第二个页面单独使用 chooseWXPay 正常吗?如果有问题,检查下第二个页面的 URL 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296793

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX