按照文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1453779503&token=&lang=zh_CN 得到了 component_access_token 和 authorizer_access_token
然后按照文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1492585163_FtTNA&token=&lang=zh_CN 在服务端请求接口 A:https://api.weixin.qq.com/sns/component/jscode2session?appid=APPID&js_code=JSCODE&grant_type=authorization_code&component_appid=COMPONENT_APPID&component_access_token=ACCESS_TOKEN
然后调用接口 https://api.weixin.qq.com/wxa/get_qrcode?access_token=TOKEN 得到体验二维码。手机扫码。登录失败(接口 A 返回 error)。
问题1:接口 A 中的 component_access_token 到底是 component_access_token 还是 authorizer_access_token ???
问题2:对于接口 A,我们尝试了给 component_access_token 参数传 component_access_token 值和 authorizer_access_token 值。前者报错:40029 invalid code;后者报错:48001 api unauthorized。appid 参数也尝试传了“开发小程序的 appid” 和 "授权方的小程序 appid",都有问题。
客户端环境:真机。
请问问题出在哪里?
补充1(针对接口 A 中的三个关键参数:appid, component_appid 和 component_access_token 做了所有情况的尝试,返回结果如下):
1.
appid(authorizer_appid): wx270fa3fa79f8420c
token (authorizer_access_token) : ATtAR0nd5bgd_Z1eTJon917hiVElMXoTEuScNRZG-utCglNGW4tKIevS9s1wLN8kGk0aHRPk3M2mJ93XvQhDsWa_E58-MRLYFOXZMCwKUH3yPAIOJDNUE2SIPuGqrFP9WOZfAFDRJU
component_appid(第三方平台 appid): wx3c1a0e15ef50f146
返回结果:48001 api unauthorized
2.
appid(authorizer_appid): wx270fa3fa79f8420c
token (component_access_token) : ahbWu_KOoTGE6equpud7PuBVAPdYgcH9JLEAJFNxKy2TKhlqNKO9jeY5x6NXkvexKQPfSvs5fVKhZg9Jn5qhaMnIXTHgLH2eiWcSa4tZrNxGaJB5Sg49KcQCJBYTFrrAVZCfAAAHLO
component_appid(第三方平台 appid): wx3c1a0e15ef50f146
返回结果:-1 system error
3.
appid("开发小程序"的 appid) : wxc2c69d984b94586a
token(authorizer_access_token) : ATtAR0nd5bgd_Z1eTJon917hiVElMXoTEuScNRZG-utCglNGW4tKIevS9s1wLN8kGk0aHRPk3M2mJ93XvQhDsWa_E58-MRLYFOXZMCwKUH3yPAIOJDNUE2SIPuGqrFP9WOZfAFDRJU
component_appid(第三方平台 appid): wx3c1a0e15ef50f146
返回结果:48001 api unauthorized
4.
appid("开发小程序"的 appid) : wxc2c69d984b94586a
token(component_access_token) : ahbWu_KOoTGE6equpud7PuBVAPdYgcH9JLEAJFNxKy2TKhlqNKO9jeY5x6NXkvexKQPfSvs5fVKhZg9Jn5qhaMnIXTHgLH2eiWcSa4tZrNxGaJB5Sg49KcQCJBYTFrrAVZCfAAAHLO
component_appid(第三方平台 appid): wx3c1a0e15ef50f146
返回结果:40029 invalid code
5.
appid(authorizer_appid) : wx270fa3fa79f8420c
token(authorizer_access_token) : ATtAR0nd5bgd_Z1eTJon917hiVElMXoTEuScNRZG-utCglNGW4tKIevS9s1wLN8kGk0aHRPk3M2mJ93XvQhDsWa_E58-MRLYFOXZMCwKUH3yPAIOJDNUE2SIPuGqrFP9WOZfAFDRJU
component_appid("开发小程序"的 appid): wxc2c69d984b94586a
返回结果:48001 api unauthorized
6.
appid(authorizer_appid) :wx270fa3fa79f8420c
token(component_access_token) : ahbWu_KOoTGE6equpud7PuBVAPdYgcH9JLEAJFNxKy2TKhlqNKO9jeY5x6NXkvexKQPfSvs5fVKhZg9Jn5qhaMnIXTHgLH2eiWcSa4tZrNxGaJB5Sg49KcQCJBYTFrrAVZCfAAAHLO
component_appid("开发小程序"的 appid): wxc2c69d984b94586a
返回结果:40094 invalid component credential
7.
appid("开发小程序"的 appid) :wxc2c69d984b94586a
token(authorizer_access_token) : ATtAR0nd5bgd_Z1eTJon917hiVElMXoTEuScNRZG-utCglNGW4tKIevS9s1wLN8kGk0aHRPk3M2mJ93XvQhDsWa_E58-MRLYFOXZMCwKUH3yPAIOJDNUE2SIPuGqrFP9WOZfAFDRJU
component_appid("开发小程序"的 appid): wxc2c69d984b94586a
返回结果:48001 api unauthorized
8.
appid("开发小程序"的 appid) :wxc2c69d984b94586a
token(component_access_token) : ahbWu_KOoTGE6equpud7PuBVAPdYgcH9JLEAJFNxKy2TKhlqNKO9jeY5x6NXkvexKQPfSvs5fVKhZg9Jn5qhaMnIXTHgLH2eiWcSa4tZrNxGaJB5Sg49KcQCJBYTFrrAVZCfAAAHLO
component_appid("开发小程序"的 appid): wxc2c69d984b94586a
返回结果:40094 invalid component credential
补充2
换用之前的登录接口B(https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
)
之后ok了。
但该接口需要用户小程序的 secret,显然是不合理的啊。
补充1 中的第二种情况可能是正确的,但是后端服务返回 system error 需要具体看下为什么。
楼主解决了吗
我想问下怎么解决的,我也遇到这个问题,很急,
是不是今天更新的工具调整了getSession的接口?
今天更新的工具调用这个接口也是“invalid code”,在真机上又是正常
遇到类似问题的同学请参考以下 check list:
- 检查接口参数名是否正确(参数名是 component_access_token 而非 authorier_access_token);
- 检查服务器 ip 是否加到了第三方服务后台的 ip 白名单中;
- 调用 component 版的 jscode2session 接口时的 appid 要是授权方的 appid 而非“模板小程序”的 appid。
同样的问题, 已经审核通过版本也是同样的问题.
解决了吗 我也遇到了
解决了吗 ,同遇啊 40029
你们都解决了吗
已解决,必须至少有一个审核通过的版本才ok,否则就是40029错误