微信 curl 方式 获取access_token
我是菜,所以往往一个小小的问题就会困扰我很久
公众平台说获取access_token是这样的
接口调用请求说明
http请求方式:GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
我的代码是这样的,根据网上太多的教程
define('AppScret','7a424cd03ac5558dc3e57bd35ddf0e7a63');
define('AppID','wx340a68150f5327747');
define('TOKEN','ImKidding');
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.AppID.'&secret='.AppScret;
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url); //请求的URL
curl_setopt($ch,CURLOPT_HEADER,false); //是否显示头部
curl_setopt($ch,CURLOPT_RETURNTRANSFER,false); //是否直接输出到屏幕
//上面true 和 false 也可以用0、1,但我习惯用这个。由于只是取数据,没必要显示到屏幕上
//curl_setopt($ch,CURLOPT_POST,true); //是否以post方式
$accToken = curl_exec($ch);
curl_close($ch);
var_dump($accToken);
但这样执行怎么都获取不了结果,一直是false
,为什么,因为这个地址是 https
的!
网上多数教程都没有写这点,但终于我还是找到了,在里面添加这两条
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //https请求 不验证证书 其实只用这个就可以了
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //https请求 不验证HOST
然后就可以获取到这样的结果
{
"access_token":"tAbZcPZXsLq-6bD-SaVesflOUVR1q9Ir9Q17jSQ2VzICVLUQaxwFURLThVjviUuzfr55s1PeHMglcSQilDfkYo6jn-mpU2bpTyxOqPQaofQIlsaslL6rBwcg21utmHaDObISNiADADNI",
"expires_in":7200
}
总结一下curl的知识
如果你怎么弄都不行,可能是你的curl功能没有在php中开启,百度关键词
php 开启curl
define('AppScret','7a424cd03ac5558dc3e57bd35ddf0e7a63');
define('AppID','wx340a68150f5327747');
define('TOKEN','KiddingYou');
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.AppID.'&secret='.AppScret;
//1 - 初始化curl
$ch = curl_init();
//2 - 设置curl参数
curl_setopt($ch,CURLOPT_URL,$url); //请求的URL
curl_setopt($ch,CURLOPT_HEADER,false); //是否显示头部
curl_setopt($ch,CURLOPT_RETURNTRANSFER,false); //是否直接输出到屏幕
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //https请求 不验证证书 其实只用这个就可以了
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //https请求 不验证HOST
curl_setopt($ch,CURLOPT_POST,true); //是否以post方式,如果true,就是以post的方式,如果false就以get方式,根据自己需要来
//******上面 true 和 false 也可以用 0 、 1 **************
//3 - 获取数据
$accToken = curl_exec($ch);
//4 - 关闭资源
curl_close($ch);
var_dump($accToken); //显示数据
新手如果有什么问题,尽可以问