zoukankan      html  css  js  c++  java
  • 储存与更新 access_token

    做微信的项目,一开始就是 access_token 的申请,微信文档上写的比较清楚:

    1、为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器。而其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则会造成access_token覆盖而影响业务;
    2、目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外输出的依然是老access_token,此时公众平台后台会保证在刷新短时间内,新老access_token都可用,这保证了第三方业务的平滑过渡

    从中可以知道:

    1. 我们要做好 access_token 的储存,且只能储存在一个地方(暂称为A处),需要获取access_token只能从A处获取,如果A处不存在,就重新获取 access_token 并存放到A处。这点是比较好做的,我在只有一台服务器,通过将 access_token 储存到 redis 中作为中控。
    2. 难处理的是这点:access_token覆盖。你不知道什么时候会发生覆盖,可能是别人不小心重新生成了一个 access_token。我之前的做法是,在每次调用 access_token 之前,都向微信发起请求,验证 access_token 是否有效,如果无效,就重新申请一个。但是这样频率过大的话,会被微信服务器拒绝。所以,我现在改成:根据调用结束之后的响应,如果错误码是 access_token 过期相关的,才重新申请新的 access_token,这样又会造成遗漏,所以我又在申请成功后,将当前执行的函数放入队列中。另外,每次都要根据返回判断,然后做出处理,代码重复太多了,应该想办法减少重复
  • 相关阅读:
    P1119 灾后重建
    P1824 进击的奶牛
    P3743 kotori的设备
    【MM配置】SAP MM模块配置目录(转)
    【SAP参数文件】SAP参数文件(转)
    【MM】供应商删除
    【Debug】修改数据库表数据的方法
    【MM 单位换算】物料基本单位换算
    EDI RFC IDOC
    【打印配置】SAP打印机配置
  • 原文地址:https://www.cnblogs.com/jay54520/p/6185315.html
Copyright © 2011-2022 走看看