收藏
回答

OpenSDK授权登录BUG

https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.html

系统:iOS

SDK版本:1.8.7.1

问题:

APP调用微信授权登录,返回APP后,APP的服务端执行“通过code参数加上AppID和AppSecret等,通过API换取access_token;”,但是报出如下错误信息:“code been used, rid:611f17f7-430b5b23-5b5c829f”。

但是该问题不是必现的,不同的网络情况下重现概率不同;经过测试,在我司内网WIFI情况下比4G网络下重现概率要高很多。

原因:

经过抓包排查,发现授权登录出现错误的情况下,APP会发送发送出如下请求:

GET
 https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx7c313ada172xxxxxx&secret=71cb1e895c0a0c10xxxxxxxxxxx&code=041YR20w3zieWW2x3b3w3jLE9b2YR20E&grant_type=authorization_code
 HTTP/1.1

根据接入文档推测,上面的接口会将授权登录返回的code使用掉,这样当APP服务端通过code换取access_token时就会报错。

而且在授权登录正常的情况下,APP是不会发出如上请求的。

在APP业务代码中排查并未发现自己调用如上请求的代码,因此怀疑是OpenSDK在某种情况会在某种情况下自己发送如上请求,从而导致错误。


请求:

麻烦开放平台技术人员排查一下问题原因,如果确实是上面推测的原因,希望可以尽快发个修复版本。thx

最后一次编辑于  2021-11-16
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2021-11-16

    你好, OpenSDK没有网络请求的能力

    2021-11-16
    有用
    回复 4
    • 奇风
      奇风
      2021-11-17
      2021-11-17
      回复
    • 奇风
      奇风
      2021-11-17
      上面截图里,请求1就是上面说的请求,请求2是我们业务方发送的请求,都使用了授权登录返回的code。请求1的UserAgent包含“%E5%AD%A6%E4%BC%9A”,URLDecode之后是“学会”,是我们APP的名字。请求应该是从APP发出去的。
      2021-11-17
      回复
    • 奇风
      奇风
      2021-11-17
      但是我们业务代码中没有向api.weixin.qq.com发送任何请求,除了SDK,实在想不到哪里会有可能发了
      2021-11-17
      回复
    • 奇风
      奇风
      2021-11-17
      请问有没有技术支持人员可以帮忙排查一下这个问题
      2021-11-17
      回复
登录 后发表内容