今天上午客户提出问题,看了一下报错截图,应该是我更新版本时少传了一个参数,导致后续报错,

心里想着小问题,直接生产环境添加一下就行了,于是就为了我这一上午的悲剧埋下了伏笔

十分自信的把页面中的代码添加了以后,直接登录客户系统,测试一笔交易

非常意外的,突然报错了,报错页面提示openid获取失败,第一时间反应是否是客户修改了公众号的设置,

排查过以后客户说并没有,这就奇怪了,明明之前稳定运行的系统为什么突然报错了

直接在服务器打印微信获取openid的返回值

发现是errcode = 40163; errmsg = "code been used",一头雾水????

百度后发现好多遇到这种问题的,基本核心思路都是由于回调的code重复使用导致的,可是我这确实没有重复使用啊

各种打断点LOG发现确实函数被调用了多次,这就奇怪了,难道是微信出问题了?? 自己的水平肯定不如腾讯的啊

于是开始了我漫长的排查之路,缓存code ,写入文件,写判断函数,能想到都尝试了,就是不行,都想恢复上一版本代码了

这时候突然发现一个兄弟写的文章,他说他设置断点后,由于程序未即使回复,导致微信的回调地址回调两次

这突然提醒了我,难道是因为页面访问过慢么? 找到之前写的测试用例一跑,发现问题了

原来是拉起支付的页面报错了,就是最开始我十分自信更新的代码,拉起页面报错后,回导致微信的回调code不成功,微信就会多次回调,

多次回调后code重复提交,就会导致errcode = 40163; errmsg = "code been used"

划重点:errcode = 40163; errmsg = "code been used",这个错误原因是code重复导致,导致code重复的原因有很多,如果你是正常稳定的系统突然发现的,请把程序中回调的页面直接拉起看看,是不是报错了

最新文章

  1. Entity Framework 6 Recipes 2nd Edition(13-2)译 -> 用实体键获取一个单独的实体
  2. spring与hessian整合例
  3. Hive_配置远程Metastore
  4. NetBIOS与Winsock编程接口
  5. /proc/stat文件详解(翻译)
  6. 手机自适应meta设置
  7. 一个简单的Lua解释器
  8. Lucene
  9. iOS 开发者账号共用发布证书 (Distribution)问题
  10. 写出优秀论文How To Write A Great Essay About Anything
  11. [Protractor] Locators and Suites in Protractor
  12. Mysql show Status常用参数详解
  13. ubuntu 配置JDK环境变量
  14. Error--解决使用Application Loader提交ipa包审核时的报错:ERROR ITMS-90168: "The binary you uploaded was invalid."
  15. memcached经典问题和现象
  16. 33.Django ModelForm
  17. Linux - info
  18. Laravel日常使用总结
  19. Uncaught TypeError: form.attr is not a function 解决办法
  20. Vue + Element UI 实现权限管理系统 前端篇(十一):第三方图标库

热门文章

  1. PHP语法入门以及变量
  2. springmvc学习笔记二:重定向,拦截器,参数绑定
  3. 同样是高并发,QQ/微博/12306的架构难度一样吗?
  4. 按需动态加载js
  5. weblogic 安装及配置
  6. gitlab设置项目组成员权限
  7. Fundebug录屏插件更新至0.6.0
  8. PHP代码篇(七)--PHP及MySQL已经使用过的函数
  9. linux修改权限
  10. 监控类shell脚本