微信access_token请求之简单缓存方法封装
还有东西要搞,就直接上代码
function.php
<?php
// 一个好玩的 curl 类
// https://github.com/metowolf/Meting/blob/master/src/Meting.php
// curl 方法请求 url
function https_request($url,$data)
{
// 初始化
$ch = curl_init();
// 设置
curl_setopt($ch,CURLOPT_URL,$url);
// 检查ssl证书
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
// 从检查本地证书检查是否ssl加密
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,$url); if ( !empty($data) ) {
curl_setopt($ch,CURLOPT_POST,1);// 开启post
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);// 发送post $data }
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch);
curl_close($ch); // close curl res
return $res;
} function __autoload($className)
{
if ( file_exists('./Controller/'.$className.'.php')) {
include './Controller/'.$className.'.php';
}
} ?>
Token.php
<?php /**
* token
*/
class Token
{
public static $tokenFile = './token.txt';
public static $tokenExpireTime = '3600'; // 入口方法获取token
public static function getToken()
{
// 先查缓存, 没有,再去请求
if ( !self::checkTokenFileExists() || self::checkTokenFileExpire() ) {
// 不存在 要重新请求
// 过期 也要重新请求
$token = self::request_token();
// 更新缓存
self::write_token($token);
return $token;
}else{
// 缓存合法
// 读取缓存
return self::read_token(); } } public static function write_token($token)
{
file_put_contents(self::$tokenFile,$token);
}
public static function read_token()
{
return file_get_contents(self::$tokenFile);
} public static function request_token()
{
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx199e07a40f2b94e7&secret=080b6aa95c137c95e1fb61c7eebfa0b2';
// 发起 get
$res = https_request($url);
$data = json_decode($res,true);
$token = $data['access_token'];
// var_dump($token);
return $token;
} public static function checkTokenFileExists()
{
return file_exists(self::$tokenFile);
}
// 返回过期
public static function checkTokenFileExpire()
{ return filemtime(self::$tokenFile) + self::$tokenExpireTime < time();
} } ?>
微信access_token请求之简单缓存方法封装的更多相关文章
- 通用ajax请求方法封装,兼容主流浏览器
ajax简单介绍 没有AJAX会怎么样?普通的ASP.Net每次运行服务端方法的时候都要刷新当前页面. 假设没有AJAX,在youku看视频的过程中假设点击了"顶.踩".评论.评论 ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)
一.Django中的缓存: 前戏: 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一 ...
- 前端清除缓存方法(微信缓存引起的bug)
bug1:在新版微信中,部门安卓机子(华为)出现window.location.href/window.location.reload....等方法来刷新本页面链接,发现页面没有被刷新,经过排查,发现 ...
- java 接口自动化测试之数据请求的简单封装
我们自己用java写接口自动化测试框架或者做个接口自动化测试平台的话,是需要自己进行相关的请求的,因此我们需要简单的封装下httpclient,我新建了一个http工具类,将get方法和post方法进 ...
- 基于promise对小程序http请求方法封装
原因是我不想每次请求都复制粘贴那么长的请求地址,所以我把前边那一坨请求地址作为基础地址,只传后台给的路由就ok,而且,并不是每次请求都要显示正在加载,这对小程序体验很差,所以,我加了个形参,用来判断是 ...
- Java开发微信公众号(三)---微信服务器请求消息,响应消息,事件消息以及工具处理类的封装
在前面几篇文章我们讲了微信公众号环境的配置 和微信公众号服务的接入,接下来我们来说一下微信服务器请求消息,响应消息以及事件消息的相关内容,首先我们来分析一下消息类型和返回xml格式及实体类的封装. ( ...
- axios浏览器异步请求方法封装 XMLHttpRequest
axios学习笔记defaults(浏览器端异步请求处理方式) 浏览器异步请求方法封装,主要使用XMLHttpRequest lib/adapters/xhr.js //入口 var utils = ...
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...
随机推荐
- sql语句,查询昨天的数据
如果在程序中,有前台传来两个时间点:beginTime和endTime,在sql查询中的限制条件就是查询昨天的数据,那么可以这样写: 但是如果在这里要查询昨天的数据的话, 则不能简单地在开始时间的那里 ...
- 一个可爱 & 小清新的加载等待Android控件
https://github.com/Carson-Ho/Kawaii_LoadingView
- php WNMP(Windows+Nginx+Mysql+php)配置笔记
下载安装 php 修改nginx 文件 参考云盘实例 eclipse php配置服务ip 127.0.0.1:999 以及项目路径(php解析路径)
- oracle-union all与order by联合使用
今天写sql的时候,第一次使用union all+order by .是个比较简单的问题,但由于对数据库的不深入理解导致犯了愚蠢的错.浪费了很多时间 如题: 两个子查询union all 需要用ord ...
- Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package
1.在搭建SpringBoot框架时碰到的问题. ** WARNING ** : Your ApplicationContext is unlikely to start due to a @Comp ...
- Linux ugo 权限
Linux 系统中文件的 ugo 权限是 Linux 进行权限管理的基本方式.本文将介绍 ugo 权限的基本概念.说明:本文的演示环境为 ubuntu 16.04. 文件的所有者和组 Linux 文件 ...
- 从Stampery到Chronicled,区块链公证业务的实践
Stampery就是这样一家利用比特币区块链技术代替公证人的创业公司,能为所有的敏感文件提供具有法律约束力的证明.可以用Stampery证明任何文件,它能很好地保护知识产权,证明遗嘱.宣誓.合同.家庭 ...
- MySQL高可用方案-PXC环境部署记录
之前梳理了Mysql+Keepalived双主热备高可用操作记录,对于mysql高可用方案,经常用到的的主要有下面三种: 一.基于主从复制的高可用方案:双节点主从 + keepalived 一般来说, ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录 - 添加shell脚本监控
对公司的jira访问状态进行监控,当访问状态返回值是200的时候,脚本执行结果为1:其他访问状态返回值,脚本执行结果是0.然后将该脚本放在zabbix进行监控,当非200状态时发出报警.jira访问状 ...
- 个人作业——final
一 . 对M1M2的一个总结 我特别感谢我们组的PM.以前我觉得女生学计算机这个专业,跟男生比差太远了.总觉得我们女生就是上上课写写作业考考试还行,但是一到开发什么项目啊,实战之类的,总觉得自己的能力 ...