利用thinkphp S方法缓存 access_token 和jsapi_ticket 会出现 confing失败,如果去掉缓存,就可以了,所以问题就出在了 缓存这块,代码如下, 希望大神指出问题所在 多谢多谢
其中代码中不管是 jsapi_ticket会调用 getAccessToken()方法,其他的如发送消息,上传下载微信服务器图片也会调用 getAccessToken()方法
public function getAccessToken() //获取 access_token
{
if(S('access_token')){
return S('access_token');
}
$url = "https://api.weixin.qq.com/cgi-bin/token";
$data = array(
'grant_type'=>'client_credential',
'appid'=>$this->appid,
'secret'=>$this->appsecret
);
$res = (array)$this->curlGet($url,$data);
if($res['access_token']){
S('access_token',$res['access_token'],$res['expires_in']-200);
return $res['access_token'];
}
}
public function getJsApiTicket()//获取临时票据 用于前端jssdk调用
{
if(S('jsapi_ticket')){
return S('jsapi_ticket');
}
$access_token = $this->getAccessToken();
$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket";
$data = array(
'access_token'=>$access_token,
'type'=>'jsapi',
);
$res = (array)$this->curlGet($url,$data);
if($res['errcode'] == 0){
S('jsapi_ticket',$res['ticket'],$res['expires_in'] - 200);
return $res['ticket'];
}else{
S('access_token',null);
$this->getJsApiTicket();
}
}
那楼主,你单独调用getAccessToken,把生成缓存和使用缓存的的都注释掉,把调用接口返回的结果打印出来看看。