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 相关文章推荐
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
php防攻击代码升级版
Dec 29 PHP
php数据类型判断函数有哪些
Sep 23 PHP
php获取网页标题和内容函数(不包含html标签)
Feb 03 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
PHP共享内存使用与信号控制实例分析
May 09 PHP
PHP实现文字写入图片功能
Feb 18 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的可变变量名需要的注意的问题
2013/06/20 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
centos下更新Python版本的步骤
2013/02/12 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
知识改变命运演讲稿
2014/05/21 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
总经理致辞
2015/07/29 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
docker-compose部署Yapi的方法
2022/04/08 Servers
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers