收藏
回答

小程序第三方服务(开发小程序) code 换取 session_key 失败




按照文档: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 在服务端请求接口 Ahttps://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 需要具体看下为什么。




最后一次编辑于  2017-04-30
回答关注问题邀请回答
收藏

30 个回答

  • 心机次哇一次毛嘿多次จุ๊บ
    心机次哇一次毛嘿多次จุ๊บ
    2017-07-21

    我的解决了 是appid和appserect写错了 希望对你们有帮助

    2017-07-21
    有用 1
    回复 1
    • 2018-10-29

      都说了用serect显然是不合理的

      2018-10-29
      回复
  • 厚鹏飞
    厚鹏飞
    2017-07-17

    微信小程序开发团队的人能出来解答一下吗?不然要这个官方的社区干啥

    2017-07-17
    有用 1
    回复
  • 背影里的沉默
    背影里的沉默
    2019-12-24

    楼主解决了吗

    2019-12-24
    有用
    回复
  • 羡峰
    羡峰
    2019-11-19

    我解决了。

    我的错误原因是 component app id 无效(使用了小程序的 app id)。

    codeing 手抖造成的,折腾了一个下午。

    2019-11-19
    有用
    回复
  • Lange
    Lange
    2018-06-06

    注意

    小程序的项目使用的AppID必须和服务器使用的AppID参数一致

    我是这个原因

    2018-06-06
    有用
    回复
  • wshu😀
    wshu😀
    2018-05-28

    试了半天,真机是可以,但开发工具不行。

    2018-05-28
    有用
    回复
  • 如意网络
    如意网络
    2018-04-24
    1. {errcode: 40029, errmsg: "invalid code, hints: [ req_id: UvkupA0112th21 ]"}

      1. errcode:40029

      2. errmsg:"invalid code, hints: [ req_id: UvkupA0112th21 ]"

    反复检查, 各项参数都正确, 依然是40029, 官方你们能不能给个准话, 能搞就说一下, 搞不了就拉倒!

    2018-04-24
    有用
    回复
  • 龙源
    龙源
    2018-04-19

    遇到这个情况了,大家的都解决了吗?

    2018-04-19
    有用
    回复
  • one
    one
    2018-01-03

    appid和后台用的那个是否一样,我上次遇到的错误就是因为appid的原因

    2018-01-03
    有用
    回复
  • 疯子
    疯子
    2018-01-03

    我同样的问题;一直收到 40029;

    然后按照楼上Yy的操作,检查了一下。是我的ip没有在白名单。


    我也是醉了。没有在白名单为啥返回returnCode":40029,"returnMessage":"WEIXIN_CODE_ERR"


    这不是误导人么。

    2018-01-03
    有用
    回复

正在加载...

登录 后发表内容