/*** 获取access_token  并放入cache缓存*/function  set_access_token($cacheobj){static $n=0;$access_token =null;Cache::rm('access_token');if (empty($access_token) ||$access_token ==false) {$access_token = $this->get_access_token();// 切换到file操作$access_token = json_decode($access_token,true);if(is_array($access_token)){$access_token['add_time'] = time();}$access_token = json_encode($access_token);// 提前20秒获取一次$cacheobj->set('access_token', $access_token, 7000);}$data =json_decode($access_token,true);if($n>=10){return '';}if(!isset($data['access_token']) || $data['access_token']==''){$n++;return $this->set_access_token($cacheobj);}//存入数据库中Db::name('config')->where(['id'=>53,'name'=>'access_token'])->update(['value'=>$data['access_token']]);return $data['access_token'];}// 获取tokenfunction get_access_token(){static $n=0;$configdata = Config::get('weixin_api');$url= $configdata['get_access_url'];$appid = $configdata['appid'];$secret = $configdata['secret'];$url = str_replace('APPID', $appid, $url);$url = str_replace('SECRET', $secret, $url);$client = new Client(['timeout' => 8.0,]);$request = new GuRequest('get', $url);$response = $client->send($request, ['timeout' => 30, 'verify' => false, 'headers' => ['Accept' => 'application/json',]]);$body = $response->getBody();$remainingBytes = $body->getContents();$n++;if($n>=4){return '';}//判断是否正确if(stripos($remainingBytes,'access_token') !== false){return $remainingBytes;}else{return  $this->get_access_token();}}
<?phpnamespace think;
use \Workerman\Worker;
use \Workerman\Lib\Timer;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
define('APP_PATH', __DIR__ . '/application/');
require __DIR__ . '/thinkphp/base.php';
$task = new Worker();
// 开启多少个进程运行定时任务,注意业务是否在多进程有并发问题
$task->count = 1;
$task->onWorkerStart = function($task)
{// 每7200秒执行一次$time_interval = 6000;Timer::add($time_interval, function(){$urltoken = 'http://zyapi.xiaoluge.top/generateaccess_token';$client = new Client();$response = $client->get($urltoken);$response->getStatusCode(); // 200});
};// 运行worker
Worker::runAll();

微信服务号 权限 access_token 失效问题相关推荐

  1. 微信服务号解决开启服务配置后自定义菜单失效的方法

    在部署微信服务号时碰到一个问题,由于需要监听用户订阅和取消订阅服务号的事件,所以开启了服务器配置(如何监听可查阅我上一篇文章),开启后发现服务号的菜单不见了.到微信公众平台的管理后台中查看自定义菜单, ...

  2. 解决微信服务号Scope 参数错误或没有 Scope 权限

    #解决微信Scope 参数错误或没有 Scope 权限 使用微信服务号做用户登陆的时候出现Scope 参数错误或没有 Scope 权限错误: 出发点是想要做一个用户可以通过扫描二维码直接授权登陆网站应 ...

  3. PHP 开发社区微信服务号实战图解

     本博文就月初刚上线的微信服务号,图文进行总结分享给大家. 去年年底,我所在的团队讨论要开发微信号,话题由此拉开: 原来有一个3年前注册的微信号,但是后台操作无法从"订阅号"变 ...

  4. APP提现之微信服务号红包

    现在很多APP都有提现功能,而提现大部分都是用微信提现,微信提现有两种,一是红包,二是企业付款,在这里结合一下开发,做一些微信服务号发送红包功能的介绍. 例如当前比较火的直播APP映客的提现就是通过微 ...

  5. 微信服务号开发----创建个性化菜单

    官方链接http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html 1.目的:让公众号的不同用户群体看到不一样的自定义菜单 ...

  6. 微信服务号开发的完整人性化版攻略

    前言: 本次要讲述的是一个本人完整微信服务号开发的经验分享,微信服务号的作品:请搜索微信号:zjaisino,名称:爱信诺Aisino一站式服务平台.(这里声明,这不是打广告,只是为了方便各位开花攻城 ...

  7. 微信小程序使用微信服务号推送消息

    使用前提 查看自己是否有发送消息模板接口的权限 点击 消息模板(业务通知)查看相关的api文档 开发版本 开发工具 :IntelliJ IDEA 2022.2.1 数据库 :MySQL Server ...

  8. 微信服务号及支付功能接入详解

    本文同步至个人博客 微信服务号及支付功能接入详解,转载请注明出处 最近在实现微信服务号支付功能,这边对接入商户资料审核及接口接入相关内容进行梳理. 旨在理清相关帐号的申请流程.整理服务开通.开发数据的 ...

  9. 全面解读:微信服务号升级和群发增至4条的应用方法

    全面解读:微信服务号升级和群发增至4条的应用方法 摘要:微信公众平台正式公布微信服务号升级的消息,提供高级群发接口,火速华磊初步总结:群发接口的提供意味着企业获得了精准推送的能力.企业获得了每月多次激 ...

  10. 微信服务号、订阅号和企业号的差别(运营和开发两个角度)

    一.运营的角度 1.1.概括 订阅号: 微信最初的形态是一个纯粹的社交工具,也就是人与人之间的联系工具,当中又分熟人之间的联系和陌生人之间的联系.于是就诞生了朋友圈和订阅号. 而订阅号的作用就是媒体社 ...

最新文章

  1. Method.invoke 异常捕获
  2. php更新svn,利用php进行svn更新的php代码及php执行svn更新注意事项
  3. java有装箱和拆箱吗_Java中装箱和拆箱,你真的都懂么?
  4. IdentityServer4系列 | 快速搭建简易项目
  5. iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解
  6. linux的基础知识——信号的概念
  7. 一个月市值蒸发116亿元,《姜子牙》救不了光线传媒
  8. 实现点击打卡_打卡APP哪家强?快来看!这里有一款超好用的轻量级免费的习惯养成APP!...
  9. C++类型转换方式总结
  10. kali linux 桌面消失_Kali Linux添加桌面快捷方式
  11. 经典视觉SLAM框架
  12. 模板 - 计算几何(合集)
  13. Tomcat 下载、安装与配置
  14. 学习笔记——MongDB非关系型数据库的脚本代码汇总
  15. Linux系统编程之线程(三)
  16. python 负数变正数_numpy正数相乘变负数的解决办法
  17. go mysql报错Error 1406: Data truncation: Data too long for column ‘content‘ at row 1
  18. Chrome安装程序遇到错误 0xe0000008解决办法
  19. 实用的Word文档翻译方法分享,让Word文档快速翻译
  20. DeviceIOControl具体解释-各个击破

热门文章

  1. .Net core----使用容联云短信推送
  2. 中国17家创业公司的失败史
  3. Java从数据库中读取Blob对象图片并显示的方法
  4. 计算机网络经典面试题:在浏览器中输入URL并按下回车后会发生什么?
  5. sphinx PHP win,Sphinx 在 windows 下安装使用
  6. 23 Pictures That Prove Society Is Doomed
  7. php theexcerpt,WordPress获取文章摘要函数the_excerpt、get_the_excerpt
  8. Xcode6内置环境变量(Build Setting Macros)
  9. wifi密码公式计算机,求一些高数公式,做wifi密码用?
  10. 区分计算机网络和互联网的概念,网络的概念,网络与互联网的区别