JS-SDK使用权限签名算法
最近项目开发到公众号这块,在获取用户地址这一块遇到了两个比较容易忽略的问题,我觉得有必要记录一下问题如下,
1,获取jsapi_ticket 一直code=40001
2,获取access_token返回错误码:40164
说明
:
代码语言:javascript复制第一个问题主要是由于我们转递给微信的access_token错误造成的,而第二个问题又是因为我们的后台设置问题造成的。
先说第一个问题
上截屏
从上面微信的官方文档上我们知道,获取jsapi_ticket
是需要调用微信的地址
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
我们要转递的就是access_token;而这个参数又没有说清楚,所以造成了我上面说的问题1
获取access_token参数是有两个微信提供的接口可以获取的
第一个是通过code换取网页授权access_token
代码语言:javascript复制https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
第二个开发者自己的开发者id,开发者密码(我们要选择第二种)
代码语言:javascript复制https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
我们主要要携带的参数有两个
代码语言:javascript复制第一个:appid
第二个:secret
参数下面截屏已经圈出来了
所以到此第一个问题40001
算是解决了。
现在我们来说第二个问题
解决了上面第一个问题,我们就要去调用官方的接口引起的
代码语言:javascript复制https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
造成我们第二个问题主要是我们ip白名单的问题,是因为微信官方的“获取access_token”接口新增IP白名单保护
解决方案
设置ip白名单,注意!!!设置的ip必须是备案过的,否则也不行
参考官方手册:https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&key=1495617578&version=1&lang=zh_CN&platform=2&token=1893474088
到此两个问题全部解决了。
体会: 遇到问题一定要冷静思考,如果一直解决不了可以换个思路试试,但是千万别放弃了,因为这个时候可能你就要接近问题的根源了,马上就能解决了,所以在坚持一会就行了。还有千万别绕开问题,不解决根源,下次遇到类似的又要浪费很多时间。