标题:服务商扫码登录 get_login_info 一直报 40029 invalid code,已确认 suite_access_token 匹配
问题描述:
我是服务商,使用"登录授权"功能实现扫码登录。扫码链接能正常生成,用户扫码后回调也能正常收到 code,但调用 get_login_info 接口始终返回 errcode=40029, invalid code。
环境信息:
服务商 CorpID:ww7383d2f592eda82b
登录授权 SuiteID:wwe5092ac1cdd8c6ee
第三方应用 SuiteID:wwf45adc3f43187dd8
测试企业 CorpID:ww5d1f1289ae15c634(已安装第三方应用)
服务器出口 IP:61.130.6.2(已加白名单)
我的流程:
生成扫码链接:login_type=ServiceApp&appid=wwe5092ac1cdd8c6ee&redirect_uri=...&state=...
用户扫码成功,回调带回 code 参数
获取登录授权应用的 suite_access_token:
suite_id = wwe5092ac1cdd8c6ee
suite_secret = 登录授权页面的 Secret
suite_ticket = 从登录授权指令回调收到的 ticket(<SuiteId>wwe5092ac1cdd8c6ee</SuiteId>)
获取成功,返回了有效的 suite_access_token
调用 POST /cgi-bin/service/get_login_info?access_token={suite_access_token},body:{"auth_code":"xxx"}
返回 errcode=40029, invalid code
已排查:
code 只使用了一次(日志确认只有一次回调)
code 在 5 分钟有效期内使用(从扫码到调用 get_login_info 不到 1 秒)
只有 1 个服务实例(排除多实例重复消费)
之前用 provider_access_token 调用时,调试工具显示"颁发code的应用appid跟消费code所使用的应用suiteid不一致"
改为用登录授权 SuiteID(wwe5092ac1cdd8c6ee)的 suite_access_token 后,get_suite_token 成功,但 get_login_info 仍报 40029
hint 值: 1779532521593750484340456
请问:
登录授权扫码产生的 code,正确的消费方式是什么?应该用哪个 token?
测试企业是否需要额外授权"登录授权应用"才能使用扫码登录?
登录授权的 SuiteID 和第三方应用的 SuiteID 不同,这是否会导致 code 无法被消费?

你好,
4.code和appid不匹配,code不是对应appid生成的