php获取微信基础接口凭证Access_token


Posted in PHP onAugust 23, 2018

本文为大家分享了php获取微信基础接口凭证Access_token的具体代码,供大家参考,具体内容如下

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在微信公众平台官网-开发者中心页中获得。

1. 构造一个请求函数

//设置网络请求配置
public function _request($curl,$https=true,$method='GET',$data=null){
 // 创建一个新cURL资源
 $ch = curl_init();
 
 // 设置URL和相应的选项
 curl_setopt($ch, CURLOPT_URL, $curl);  //要访问的网站
 //启用时会将头文件的信息作为数据流输出。
 curl_setopt($ch, CURLOPT_HEADER, false);  
 //将curl_exec()获取的信息以字符串返回,而不是直接输出。
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
 
 if($https){
 //FALSE 禁止 cURL 验证对等证书(peer's certificate)。
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); //验证主机
 }
 if($method == 'POST'){
 curl_setopt($ch, CURLOPT_POST, true); //发送 POST 请求
  //全部数据使用HTTP协议中的 "POST" 操作来发送。
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
 }
 
 
 // 抓取URL并把它传递给浏览器
 $content = curl_exec($ch);
 
 //关闭cURL资源,并且释放系统资源
 curl_close($ch);
 
 return $content;
}

2.获取票据并保存

//获取令牌[access_token]
public function _getAccessToken(){
 
 //指定保存文件位置
 if(!is_dir('./access_token/')){
 mkdir(iconv("UTF-8", "GBK", './access_token/'),0777,true); 
 }
 $file = './access_token/token';
 if(file_exists($file)){
 $content = file_get_contents($file);
 $cont = json_decode($content);
 if( (time()-filemtime($file)) < $cont->expires_in){
  //当前时间-文件创建时间<token过期时间
  return $cont->access_token;
 }
 }
 
 $curl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->_appid.'&secret='.$this->_appsecret;
 $content = $this->_request($curl);
 file_put_contents($file,$content);
 $cont = json_decode($content);
 return $cont->access_token;
 
}

*出于安全考虑的话,获取到的票据可以先编码或加密再保存,使用的时候进行解码解密再使用!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php桌面中心(四) 数据显示
Mar 11 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
PHP会话处理的10个函数
Aug 11 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 PHP
Yii2中datetime类的使用
Dec 17 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 PHP
php对微信支付回调处理的方法
Aug 23 #PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 #PHP
Yii2语言国际化自动配置详解
Aug 22 #PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 #PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 #PHP
PHP封装的完整分页类示例
Aug 21 #PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 #PHP
You might like
php中文本操作的类
2007/03/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
python和opencv实现抠图
2018/07/18 Python
python实现汽车管理系统
2018/11/30 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
轻松制作精彩视频:Animoto
2018/09/19 全球购物
区域销售经理岗位职责
2013/12/10 职场文书
真诚的求职信
2014/07/04 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
先进个人推荐材料
2014/12/29 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript