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 Class 文章
Apr 04 PHP
PHP获取网址的顶级域名函数代码
Sep 24 PHP
域名和cookie问题(域名后缀)
Oct 10 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 PHP
php统计文章排行示例
Mar 04 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
laravel migrate初学常见错误的解决方法
Oct 11 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 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
PHP4实际应用经验篇(1)
2006/10/09 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
详解Vue之计算属性
2020/06/20 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
将python代码和注释分离的方法
2018/04/21 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
python并发和异步编程实例
2018/11/15 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
Python是如何进行类型转换的
2013/06/09 面试题
环境工程大学生个人的自我评价
2013/10/08 职场文书
便利店的创业计划书
2014/01/15 职场文书
婚庆公司计划书
2014/09/15 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
信息技术研修心得体会
2016/01/08 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript