PHP7.0微信公众平台开发2: https_request()和getAccessToken()
2017-08-28 12:47
351 查看
PHP7.0微信公众平台开发2: https_request()和getAccessToken()
1. 抓获网页数据的函数https_request()2. 获取access_token的函数:getAccessToken()
3. 测试是否获取到access_token
这两个函数是比不可少的,日后在调用任何微信接口时都会要调用这两个函数。
1. 抓获网页数据的函数https_request()
在上一篇中的wechat.php中继续添加函数http_request():public function https_request($url,$type,$res,$arr){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if($type == 'post'){ //type可以为“get”或“post” curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS, $arr); } $output = curl_exec($ch); curl_close($ch); if($res == 'json'){ //res可以是“json”或"xml" return json_decode($output,true); } }
2. 获取access_token的函数:getAccessToken()
1)获得appid和appsecret当申请了一个订阅号或者测试号后,微信平台会提供一个appid和appsecret, 由这两个进行验证随机生成access_token,从而才能调用微信的接口。
订阅号的appid和appsecret还是在“基本配置”中设置,但是一旦设置以后,网页上只会显示appid,不会再显示appsecret,所以如果设置好后请截图或者复制成文本记录下来,如果忘记可以重置,如图:
测试号的appid和appsecret在“开发者工具”-> “公众平台测试帐号”中,注册完测试号后,就会自动生成appid和appsecret,且两个都一直显示,如图:
2) 获得微信服务器定义的获取access_token的URL与请求方式
所有接口的请求方式,UTL和数据格式可在“微信公众平台开发者文档中查看”(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183)。
3)添加代码
在上一篇中的wechat.php中继续添加函数getAccessToken():
public function getAccessToken(){ if($_SESSION['access_token'] && $_SESSION['expire_time']>time()){ return $_SESSION['access_token']; } else{ //appid,appsecret,url分别见上面的图 $appid = 'wx1786********4597'; $appsecret = '9658e522*************bbe5f0c229f'; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; $res = $this->https_request($url,'get','json',''); //调用上面的http_request()获取网页数据 $access_token = $res['access_token']; $_SESSION['access_token'] = $access_token; $_SESSION['expire_time'] = time()+7200; return $access_token; } }
3. 测试是否获取到access_token
执行PHP脚本获取access_token//wechat.php
<?php define("TOKEN", "peng"); $wechatObj = new wechatCallbackapiTest(); if (!isset($_GET['echostr'])) { $wechatObj->showAccessToken(); //本次执行showAccessToken()函数来显示access_token }else{ $wechatObj->valid(); } class wechatCallbackapiTest { private $access_token; public function __construct(){ //构造函数中初始化access_token $this->access_token = $this->getWxAccessToken(); } public function showAccessToken(){ //在浏览器中输出随机生成的access_token echo "tocken = ".$this->access_token; } public function valid() { //略,在上一篇中有代码 } private function checkSignature() { //略,在上一篇中有代码 } public function https_request($url,$type,$res,$arr){ //略,见上 } public function getAccessToken(){ //略,见上 }
在浏览器中输入http://www.peng.com/wechat.php,获取到的access_token结果如下:
相关文章推荐
- 微信公众平台开发之微信access_token如何有效长期保存
- C#微信公众平台开发—access_token的获取存储与更新
- .Net实现微信公众平台开发接口(二) 之 “获取access_token”
- 如何保证access_token长期有效--微信公众平台开发(一)
- [051] 微信公众平台开发教程第22篇-如何保证access_token长期有效
- PHP7.0微信公众平台开发5: 实例二:获取用户列表
- 微信公众平台开发 获得公众号的access_token
- 微信公众平台开发——如何保证access_token长期有效?
- php+MySQL基于百度BAE的微信公众平台获取access_token
- 微信公众平台开发4-access_token获取与保持有效性
- PHP微信开发之获取access_token
- 微信公众平台开发教程第21篇-如何保证access_token长期有效
- .Net实现微信公众平台开发接口(二) 之 “获取access_token”
- 微信公众号开发——获取access_token(PHP版)
- PHP微信开发之获取access_token
- 微信公众平台开发-access_token获取及应用(含源码)
- 微信公众平台开发教程第22篇-如何保证access_token长期有效
- 如何保证access_token长期有效--微信公众平台开发(一)
- 微信公众平台开发教程第22篇-如何保证access_token长期有效
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token