先说说自己理解的微信机制:

微信内访问自己服务器的页面,如果访问出错,微信就会认为是微信自身的问题,那么他就会开启另外一个IP来访问这个页面(什么上海的IP,深圳的IP不等),再把访问结果发回用户端,但是如果另外来的那个IP访问也出错,就会返回到一个微信自己定义的404页面(什么找人信息之类的)

如果我们本身服务器页面也出错了,那么随便怎么访问都是出错的。。。那么问题来了,如果这个服务器出错的访问是用在微信网页授权上面呢?

首先看下流程:

微信内调用网页授权,首先是服务器发起访问一个微信网页授权的地址,带上回调地址。这个发起访问一般都没问题,按照那个文档来就可以,然后微信会主动访问你那个自己服务器的回调地址,并且带上一个参数code,然后自己的服务器接收到这个参数后,就把这个参数组装加密什么的,再去访问相关地址获取access_token,最终获取到用户信息,获取用户信息后,服务器还必须 反一个页面给用户,

那么在接到code到最终反一个页面给用户的过程中,如果本身程序就有错误,特别是在使用了这个code过后的出错,服务器反会错误了,那么这个时候,微信会根据最上面的原理,再次开启另外一个IP来访问,并且同样带和上次一样的code参数。这样你服务器又会去根据这个code参数去完成同样一次申请,这个时候,你表面上看起,就是报40163错误。说code被用了,但实际上是因为微信被迫开启另外一个ip来访问你的。。

那么我测试,只要是正常流程,微信只会访问一次你的回调接口。。。

这篇文章的问题 是出在我用API发红包的时候,在微信的回调里面,获取用户OPENID后,就去执行发红包的post了,结果这个里面出错(本地调试正常,部署到服务器里面就出错了。。。哎。。。。),然后日志里面就显示"errcode":40163,"errmsg":"codebeenused。。

实际上本身就是我自己程序的问题。。

普遍遇到的code been used问题:

基本思路:当我点击菜单按钮进入页面时,先去sssion缓存中去那由code获取到的openId,如果openId不存在,则证明code为首次使用,可以根据传过来的code获取相应的access_token和openId。

微信遇到特殊服务器,解决微信网页授权,出现errcode:40163,errmsg:codebeenused,看似微信访问了2次这个回调接口的问题...相关推荐

  1. 微信开发学习 问题1: 网页授权问题 “该连接无法访问” 解决方法

    微信开发学习 问题1: 网页授权问题 "该连接无法访问" 解决方法 参考文章: (1)微信开发学习 问题1: 网页授权问题 "该连接无法访问" 解决方法 (2) ...

  2. 微信公众平台-服务号:网页授权域名 设置

    微信公众平台-服务号的网页授权域名 设置 设置与开发->公众号设置->功能设置->网页授权域名 一:下载认证文件,放置服务器中 二:设置服务器中的 Https中的nginx服务 ng ...

  3. 微信公共平台接入之:网页授权(微信授权,微信access_token获取,获取微信用户信息),微信开发者工具使用,微信公众平台测试号申请接入

    1.微信公众平台文档入口 微信公众平台入口地址:https://mp.weixin.qq.com/,截图: 进入之后的文档地址: https://mp.weixin.qq.com/wiki?t=res ...

  4. 微信公众平台开发OAuth2.0网页授权(转)

    微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息  作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在 ...

  5. 微信公众号开发002-微信网页授权

    1.首先在开发前阅读微信提供的API文档(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842) 阅读完的我们就知 ...

  6. “errcode“:40164,“errmsg“:“invalid ip ...微信公众号开发调用失败的解决办法

    问题概述 关于这个问题,博主是在进行微信公众号平台开发的过程中遇到的, 微信公众号平台的前后端代码开发完成后,在联调接口调用: " https://api.weixin.qq.com/cgi ...

  7. 微信公众号设置白名单不生效, errcode: 40164, errmsg: invalid ip 0.0.0.0, not in whitelist 解决办法!

    微信公众号设置白名单不生效, "errcode": 40164,      "errmsg": "invalid ip 0.0.0.0, not in ...

  8. 解决微信登录出现{errcode:40163,errmsg:code been used, hints: [ req_id: jEFDVY4ce-jz9NSA ]} (前提是使用友盟分享)

    记录一下,记录一下. (真的想搞洗友盟) 前提是接入友盟分享SDK. 错误信息 {"errcode":40163,"errmsg":"code bee ...

  9. 纪念一下,困扰自己近一周的微信公众号errcode:40163,errmsg:code been used问题

    纪念一下,困扰自己近一周的微信公众号"errcode":40163,"errmsg":"code been used"问题. 编译环境,Sp ...

最新文章

  1. 前端知识之HTML内容
  2. angular元素属性绑定_【Angular】表单
  3. 冷眼看移动应用商店发展:再不求变只有死路一条
  4. U3D打apk包的常见错误
  5. 【基础】ABAP不同变量类型之间数值大小比较
  6. Jenkins怎么安装、使用Jenkins构建、部署spring boot项目
  7. AI理论知识基础(26)-机器学习常见损失函数, 共轭梯度法(2)
  8. springboot启动时的一个bug
  9. Docker-images
  10. SCVMM 2012 R2---添加Hyper-V主机
  11. mayapython开关_Maya Python 简易教程.doc
  12. Java自动化测试框架-01 - TestNG之入门篇 - (详细教程)
  13. 30岁前成功的12条黄金法则
  14. 使用putty上传文件到linux
  15. java 模拟get post请求_[Java] 模拟HTTP的Get和Post请求
  16. 【生活】驾照C1-科三手册
  17. 电路设计_MOS管导通条件
  18. AES200 软件用户手册
  19. 一致性 hash 算法 — CARP 2020/5/11 19:38
  20. CAD标注如何提取下来?这样提取很容易

热门文章

  1. 剑指 Offer 24. 反转链表(C语言)
  2. html5之form表单
  3. django之ORM查询操作(二)
  4. CFileDialog 在使用sdk 后出现异常 Access violation
  5. [NPUCTF2020]芜湖(Base64隐写)
  6. 渗透测试中的一波三折
  7. 12、HTML <form>标签(表单)
  8. 1.23 实例:查询个人信息
  9. 2016年蓝桥杯省赛题解
  10. 【PAT乙级】1045 快速排序 (25 分)