您现在的位置是:网站首页 > 心得笔记
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的实现