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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
Laravel5权限管理方法详解
Jul 26 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 PHP
php源码的使用方法讲解
Sep 26 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 curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
Python对象体系深入分析
2014/10/28 Python
Python抓取手机号归属地信息示例代码
2016/11/28 Python
Python 自动化表单提交实例代码
2017/06/08 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
用Python写王者荣耀刷金币脚本
2017/12/21 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
基于python3生成标签云代码解析
2020/02/18 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
python实现ping命令小程序
2020/12/28 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
中专三年学习的个人自我评价
2013/12/12 职场文书
校园活动策划书范文
2014/01/10 职场文书
个人授权委托书
2014/04/03 职场文书
班主任新年寄语
2014/04/04 职场文书
补充协议书范本
2014/04/23 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书