慕尼黑3176334
2017-11-09 21:57
这里给大家一个提示,如果你的测试号验证是通过的。我对比了两种代码的使用,关于抓取access_token的。如果使用面向对象的方式:$this -> http_curl($url,'get','json');老师写的http_curl函数是没办法抓取到json数据包的.......我也不知道为什么。而如果直接用curl写,则可以。
function getWxAccessToken(){
// if($_SESSION['accessToken'] && $_SESSION['expires_in']> time()){
// echo $_SESSION['accessToken'];
// return $_SESSION['accessToken'];
// }else{
$appid = '';
$appsecret = '';
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
//2初始化
$ch = curl_init();
//3.设置参数
curl_setopt($ch , CURLOPT_URL, $url);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
//4.调用接口
$res = curl_exec($ch);
//5.关闭curl
curl_close( $ch );
if( curl_errno($ch) ){
var_dump( curl_error($ch) );
}
$arr = json_decode($res, true);
var_dump( $arr );
// }
}
回答那里不好写代码,现行的可行的代码就放在这里了:
function http_curl($url,$type='get',$res='json',$arr=''){
//1.初始化curl
$ch = curl_init();
//2.设置curl的参数
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if($type == 'post'){
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$arr);
}
//3.采集
$output = curl_exec($ch);
//4.关闭
curl_close($ch);
if($res == 'json'){
return json_decode($output,true);
}
}
function getWxAccessToken(){
if($_SESSION['accessToken'] && $_SESSION['expires_in']> time()){
var_dump($_SESSION);
return $_SESSION['accessToken'];
}else{
$appid = '';
$appsecret = '';
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
// //2初始化
// $ch = curl_init();
// //3.设置参数
// curl_setopt($ch , CURLOPT_URL, $url);
// curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
// //4.调用接口
// $res = curl_exec($ch);
// //5.关闭curl
// curl_close( $ch );
// if( curl_errno($ch) ){
// var_dump( curl_error($ch) );
// }
// $arr = json_decode($res, true);
$arr = $this -> http_curl($url,'get','json');
$accessToken = $arr['access_token'];
$_SESSION['accessToken'] = $accessToken;
$_SESSION['expires_in'] = time()+7200;
var_dump($_SESSION);
return $accessToken;
}
}
亲测对比有效,可能是代码在调用http_curl函数的时候出了问题
PHP微信公众平台开发高级篇—自定义菜单
28920 学习 · 81 问题
相似问题