您现在的位置是:网站首页 > 心得笔记
PHP实现微信公众平台开发—提升篇核心内容:access_token
简介本篇介绍了access_token这个通用的动态口令 另外讲解了两个接口,如何获取access_token 以及如何获取微信服务器地址
要了解access_token,就必须要先了解appid,appsecret 1、access_token与appid、appsecret的关系 appid和appsecret是什么? 当你在微信公众平台注册微信公众账号时,微信公众平台为你生成的appid和appsecret。这两个值就是你在微信公众平台的唯一标识,相当于你在微信公众平台的身份证。 access_token又是什么?它与appid、appsecret有什么关系? appid和appsecret就是用来产生access_token,access_token就是一个动态口令,它存在一个时间性 就是一段时间内有效 2、access_token作为动态口令,有2大特性: 1.唯一有效性:有个时间限制(在现在微信公众平台开发手册上暂定2小时),需定时刷新 2.全局有效性:你要调微信公众平台的一些接口,就必须要带access_token这个口令,所以说它对于我们这个全局(项目),都是有效的,所以你在第一次通过appid和appsecret去调用到access_token后,需要根据它的时效性做一个存储(session memcached等) sccess_token 微信公众平台每天提供的调用次数是2000次,所以在使用微信公众平台接口的时候,尽量要从缓存中取,如果取不到,再通过appid和appsecret去取
获取access_token,就需要用到我们的微信接口,在讲微信接口之前,先了解下PHP中一个强大的工具 curl,它其实在网站采集以及统计 调接口方面是非常常用的工具 写一个简单的curl实例: public function http_curl () { //1、初始化curl $ch = curl_init(); $url = 'https://www.baidu.com/'; //2、设置参数 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //3、调用接口 $res = curl_exec($ch); //4、关闭curl curl_close($ch); var_dump($res); }
执行结果:
appid和appsecret如何获取access_token? 参考官方文档https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183 public function getWxAccessToken () { //1、初始化curl $ch = curl_init(); $appid = 'wxd5f96db9ab91exx'; $appsecret = 'd1afb61735625bca251884cc0d1xxxxx'; $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='. $appid . '&secret=' . $appsecret; //2、设置curl curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //3、调用接口 $res = curl_exec($ch); //4、关闭curl if (curl_errno($ch)) { var_dump(curl_error($ch)); } curl_close($ch); 注意:微信接口返回的都是json格式的数据!!! $arr = json_decode($res, true); var_dump($arr); 注意:要想成功获取到access_token 还需将IP填写到IP白名单中 }
执行结果如下:
参考官方文档https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140187 public function getWxServerIp () { $access_token = '18_r8OXpBoau_p1m9TxEWq7sKzt_m1tKbf-3pT83vKc1Q49-oxrraJ3xgsGr0Xy5coDjZGoAp_Cs9FZJ8HLuzhYuOoqhVNNuco53o_Q0dUbaqjrXny1LX3HQTkoBmj8CEJFQA-6DW1E8gAa6Ou0SUPeAJALNI'; $url = 'https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=' . $access_token; //1.初始化curl $ch = curl_init(); //2.设置curl参数 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //3.调用接口 $res = curl_exec($ch); //4.关闭curl if (curl_errno($ch)) { var_dump(curl_error($ch)); } curl_close( $ch ); $arr = json_decode($res, true); echo '<pre>'; var_dump($arr); echo '</pre>'; }
执行结果:
下一篇:微信sdk的实现