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

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

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

非常意外的,突然报错了,报错页面提示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重复的原因有很多,如果你是正常稳定的系统突然发现的,请把程序中回调的页面直接拉起看看,是不是报错了

记录微信支付开发中的小经验(errcode = 40163; errmsg = "code been used")的更多相关文章

  1. "errcode":40163,"errmsg":"code been used...报错,做PC微信登录时出现code been used...报错问题

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

  2. 小程序获取openid 出现null,{"errcode":40163,"errmsg":"code been used, hints: [ req_id: WNUzlA0105th41 ]"}

    //根据微信提供的接口,请求得到openid和session_id public class UserInfoUtils { private String getKeyURL="https: ...

  3. Duilib 开发中的小经验

    # duilib开发中收集的小代码 # ## 1 窗体创建 ## - 窗体多继承于 public WindowImplBase ,简单的定义几个函数就可以实现:拖曳caption移动(设置xml窗体的 ...

  4. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在线教育视频站点介绍

    笔记 第一章项目介绍和前期准备 1.SpringBoot整合微信支付开发在线教育视频站点介绍     简介: 课程介绍,和小D课堂在线教育项目搭建开发 1.课程大纲介绍         2.微信支付项 ...

  5. Android开发 --微信支付开发(转载!)(开发工具:Eclipse)

    Android_APP 微信支付接口开发 日期:2015-10-06 12:47:33 作者: 来源: 人气:3549 1.首先说一下我们在开发微信支付接口的时候遇到最多和最疑惑的问题,那就是明明 a ...

  6. 微信支付开发 c# SDK JSAPI支付开发的流程和微信大坑

    微信支付开发流程 1. 开通微信支付功能 省略 2. 下载微信的C#版的微信SDK 下载连接:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chap ...

  7. 微信支付开发h5调用

    这两天做微信支付开发.碰到大坑.纠结死我了.好不容做完. 后台java:直接上代码:注意区分前后端的变量大小写... @RequestMapping(value = "/index" ...

  8. ios开发中的小技巧

    在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...

  9. PHP微信支付开发实例

    这篇文章主要为大家详细介绍了PHP微信支付开发过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PHP微信支付开发过程,分享给大家,供大家参考,具体内容如下 1.开发环境 Thinkphp 3. ...

随机推荐

  1. hello tensorflow,我的第一个tensorflow程序

    上代码: import tensorflow as tf if __name__=='__main__': g = tf.Graph() # add ops to the user created g ...

  2. webpack基本使用

    webpack安装时的坑 高版本的webpack除了全局安装webpack外,还需安装webpack-cli,在本地使用时也一样需要这样,不然会出错 webpack使用是的坑 在原始启动webpack ...

  3. Python爬虫:设置Cookie解决网站拦截并爬取蚂蚁短租

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Eastmount PS:如有需要Python学习资料的小伙伴可以加 ...

  4. 六个office免费学习的精品教程 office自学教程让你从小白到高手

    今天给大家分享六个免费学习的精品教程,包括了word,ppt,excel常用的办公三剑客,学会这三个让你办公无忧,也能让你靠这些技术找到一份好工作,这些office自学教程让你从小白到高手. 一.PP ...

  5. [b0037] python 归纳 (二二)_多进程数据共享和同步_管道Pipe

    # -*- coding: utf-8 -*- """ 多进程数据共享 管道Pipe 逻辑: 2个进程,各自发送数据到管道,对方从管道中取到数据 总结: 1.只适合两个进 ...

  6. .net core 发布IIS 出现Http 500错误

    首先再webconfig中设置stdoutLogEnabled="true",然后运行之后,到logs中查看登陆错误日志. 根据不同的错误进行解决: 我的错误是发布文件夹中缺少Dw ...

  7. Shell命令-网络操作之基础之telnet、ssh

    文件及内容处理 - telnet.ssh 1. telnet:使用TELNET协议远程登录 telnet命令的功能说明 telnet 命令用于远端登入.执行 telnet 指令开启终端机阶段作业,并登 ...

  8. GitHub如何配置SSH Key

    https://github.com/xiangshuo1992/preload.git git@github.com:xiangshuo1992/preload.git 这两个地址展示的是同一个项目 ...

  9. python 生成sql语句

    1. 别名 s = '' name = ['张三', '李四', '王五'] for i in range(len(name)): s += "'" + name[i] + &qu ...

  10. Python实现网络多人聊天室 - Windows

    项目名称:多人聊天室项目结构: client.py server.py settings.py项目思路:服务端接收客户端连接,客户端发送信息给服务端,服务端将信息发送给所有客户端.项目实现:主进程负责 ...