php缓存accestoken_(PHP)微信公众号基础接口access_token的获取与缓存

注意:

1)公众号开发文档中说过,用中控服务器来获取和缓存、提供access_token。其他业务逻辑点统一访问中控服务器以获取。不建议在各个业务逻辑点分别获取access_token,防止频繁获取而超过公众号所规定的获取次数。(思路的本质:在一个地方统一判断是否超时,超时则统一获取一次access_token——统一判断,统一获取)

2)各个业务逻辑点最好在调用接口后判断是否因access_token过时而产生异常,因为中控获取的access_token可能因自身的不良时间差(如读取时间慢)而导致获取的是过时的access_token。

业务逻辑点中的关键代码(带判断):

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url); //$url:带有access_token参数的接口地址

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$a = curl_exec($ch);

$strjson=json_decode($a);

//var_dump($strjson); //开启可调试

if (!empty($strjson-> errcode))

{

switch ($strjson-> errcode){

case 40001: //access_token过时

//在这里重新获取中控的access_token

break;

case 41001:

//缺少access_token参数

break;

default:

throw new Exception($strjson->errmsg); //其他错误,抛出

break;

}

}

个人新想法:如果简单设计,可以考虑用一个静态类来代替中控服务器,各个业务逻辑访问这个静态类。前提:所有业务逻辑必须单线程访问静态类,多线程则静态类必须加读写锁,防止多个业务逻辑同时访问静态类而导致频繁获取access_token。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值