zoukankan      html  css  js  c++  java
  • "errcode":40163,"errmsg":"code been used...报错,做PC微信登录时出现code been used...报错问题

    这是一个坑,一个巨坑,一个恶心的坑

    出现这个问题的大概意思就是微信回调了两次登录接口,code使用了两次,而在微信官方文档上写着code只能用一次,用来获取access_token,但我TM看着就糊涂了,只能使用一次,你他妈干嘛回调两我接口。

    问题是这样出现滴:我做的是pc微信登录,第一步在java后端我拿到了生成微信登录的code_uri,在页面生成了一个微信登录二维码。

    第二步:然后我用手机微信扫描二维码,确认用微信登录。然后微信就会回调我的登录接口传一些参数过来,好让我用这些参数拿到微信用户的信息。

    大概流程是这样,然后我用code获取access_token的时候就报了"errcode":40163,"errmsg":"code been used...,发现我打的断点执行了再遍,这他妈很尴尬,百思不得其姐。

    解决办法:

      网上百度了一大堆,问题呢就是微信回调两次这个接口,然后传过来的code只能用一次来获取access_token,微信第二次回调进来的时候再用这个code去获取access_token就报这个错了。

      网上有些人说要用缓存(redis或session)把code当key,access_token当value存起来,第二次进来的时候看有没有这个code,有就返回,来避免第二次使用code获取access_token。

      我用redis试了半天,完全没卵用。

      最后我把所有断点取消,把此接口中的所有处理代码注释,写了一个最简单的打印代码,TMD再调的时候只打印一遍就过去了,终于发现了问题所在,打上断点控制台打印出来两遍,这就想明白了,打了断点可能是微信那边得不到及时反馈又调了一遍过来。

      最后的最后,大大的fuck送上,把此接口断点取消,代码复原就登录成功啦拿到微信用户的数据啦

      pc微信扫码登录的小功能,随后会另写一篇笔记,此章只是记录下这个坑

  • 相关阅读:
    String类
    数学类
    同一场景下多个图层之间的调用
    茶壶在触摸机制下旋转的三种方式
    犀牛3D模型下载
    纹理--高清设计素材下载
    cocos2d-x-2.x与3.x帧动画实现方式的改变
    toast提示框的实现
    MenuItem创建注意事项
    Cocos2d-x 面试题解 整理01
  • 原文地址:https://www.cnblogs.com/spll/p/9745431.html
Copyright © 2011-2022 走看看