微信JS-SDK如何在本地调试

whd311
  • 34

必须要传到线上才能生效吗?
今天弄了下。把公众号配的域名,映射到本地,然后通过fiddler代理,用手机访问,死活报错。报“invalid signature”,签名错误。。大概看了下,貌似是access_token这些东西取不到吧。。但是同样代码传到线上后就没问题了。难道搞这JS-SDK只能这么蛋疼的开发吗?
我就一前端小白,不怎么懂其他一些东东,麻烦各位大大啦。

回复
阅读 15.4k
3 个回答
Humphry
  • 16.4k
✓ 已被采纳

不需要传到线上,我的方案跟你是一样的。我这里测试环境没有问题。

这个问题应该是后端的问题。access_token应该在后端取用,由于有频次限制,需要在后端做缓存。
由于和access_token微信公共账号对应的appkey、appsecret绑定,测试服务器和正式服务器对应有两个不一样的号的时候一定要小心处理,有可能access_token串了哦(之前就遇到过测试服的access_token缓存的是线上的access_token的bug)。


确认一下前端的本地调试方案哈:

  1. 电脑和手机处于同一个WIFI中,电脑用fiddler开代理,通过host绑定本地ip/远程测试ip到目标域名
  2. 微信后台设置目标域名为安全域名(这个操作需要一分钟左右生效)
  3. 手机连接到同一个WIFI,走电脑的代理和端口,然后在微信里面打开目标域名下的相应页面,这个时候应该能在fiddler看到请求了

如果看不到请求,排查步骤:

  1. 电脑端打开对应域名的页面,确认host绑定成功,网络畅通
  2. 手机尝试点开一个页面,如果fiddler处抓到了对应的包,说明手机到电脑的代理是成功的
    反之,检查wifi设置(比如360wifi就有一个网页认证的选项,不要打开);检查手机设置,ping一下代理处填写的ip;关掉电脑的防火墙;要不然就重试一下代理设置步骤吧。

这个无谓本地不本地把
我是直接在SAE上写了个来给自己调试用的

不需要的,你装个nodejs,然后anywhere就可以通过ip访问了

宣传栏