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 相关文章推荐
我的论坛源代码(六)
Oct 09 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
PHP循环函数使用介绍之PHP基础入门教程
Sep 21 PHP
php实现读取内存顺序号
Mar 29 PHP
PHP、Java des加密解密实例
Apr 27 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
Oct 25 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
Jul 09 PHP
PHP fprintf()函数用法讲解
Feb 16 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 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
基于mysql的论坛(6)
2006/10/09 PHP
php获取远程文件大小
2015/10/20 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
php微信开发之图片回复功能
2018/06/14 PHP
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JSON相关知识汇总
2015/07/03 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
python中验证码连通域分割的方法详解
2018/06/04 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
python实现祝福弹窗效果
2019/04/07 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
工厂采购员岗位职责
2014/04/08 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
Python借助with语句实现代码段只执行有限次
2022/03/23 Python