// 获取JSSDK票据
function getJsApiTicket(){
$info = M('WxToken')->find(1);
if ($info['ticket_time'] < time()) {
$token=getAccessToken();
if($token==='error') return 'error';
else{
$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi";
$tmp = CURLSend($url); //json格式
$obj = json_decode($tmp);
if($obj->errmsg==='ok'){
$data = array('ticket' => $obj->ticket,'ticket_time' => (time() + $obj->expires_in));
M('WxToken')->where('id=1')->save($data);
return $obj->ticket;
}else return 'error';
}
}else return $info['ticket'];
}
// 这是获取AccessToken 和票据 的整合方法(1) 当不传参数表示获取token,传表获取票据
// 该方法可以减少(请求数据库) 1次或2次
function token_ticket($ticket=''){
$info = M('WxToken')->find(1);
if(empty($ticket)){
if ($info['expires_in'] < time()) {
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$info['appid'].'&secret='.$info['secret'];
$tmp = CURLSend($url); //json格式
$obj = json_decode($tmp);
if($obj->access_token !=null){
$data = array('access_token' => $obj->access_token, 'expires_in' => (time() + $obj->expires_in));
M('WxToken')->where('id=1')->save($data);
return $obj->access_token;
}else return 'error';
} else return $info['access_token'];
}else{
if ($info['ticket_time'] < time()) {
$token = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$info['appid'].'&secret='.$info['secret'];
$token_tmp = CURLSend($token); //json格式
$token_obj = json_decode($token_tmp);
if($token_obj->access_token !=null){
$ticket= "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token_obj->access_token."&type=jsapi";
$ticket_tmp = CURLSend($ticket); //json格式
$ticket_obj = json_decode($ticket_tmp);
if($ticket_obj->errmsg==='ok'){
$data = array(
'access_token' =>$token_obj->access_token,
'expires_in' => (time() +$token_obj->expires_in),
'ticket' =>$ticket_obj->ticket,
'ticket_time' => (time()+$ticket_obj->expires_in)
);
M('WxToken')->where('id=1')->save($data);
return $ticket_obj->ticket;
}else return 'error';
}else return 'error';
}else return $info['ticket'];
}
}
function getJsApiTicket(){
$info = M('WxToken')->find(1);
if ($info['ticket_time'] < time()) {
$token=getAccessToken();
if($token==='error') return 'error';
else{
$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi";
$tmp = CURLSend($url); //json格式
$obj = json_decode($tmp);
if($obj->errmsg==='ok'){
$data = array('ticket' => $obj->ticket,'ticket_time' => (time() + $obj->expires_in));
M('WxToken')->where('id=1')->save($data);
return $obj->ticket;
}else return 'error';
}
}else return $info['ticket'];
}
// 这是获取AccessToken 和票据 的整合方法(1) 当不传参数表示获取token,传表获取票据
// 该方法可以减少(请求数据库) 1次或2次
function token_ticket($ticket=''){
$info = M('WxToken')->find(1);
if(empty($ticket)){
if ($info['expires_in'] < time()) {
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$info['appid'].'&secret='.$info['secret'];
$tmp = CURLSend($url); //json格式
$obj = json_decode($tmp);
if($obj->access_token !=null){
$data = array('access_token' => $obj->access_token, 'expires_in' => (time() + $obj->expires_in));
M('WxToken')->where('id=1')->save($data);
return $obj->access_token;
}else return 'error';
} else return $info['access_token'];
}else{
if ($info['ticket_time'] < time()) {
$token = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$info['appid'].'&secret='.$info['secret'];
$token_tmp = CURLSend($token); //json格式
$token_obj = json_decode($token_tmp);
if($token_obj->access_token !=null){
$ticket= "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token_obj->access_token."&type=jsapi";
$ticket_tmp = CURLSend($ticket); //json格式
$ticket_obj = json_decode($ticket_tmp);
if($ticket_obj->errmsg==='ok'){
$data = array(
'access_token' =>$token_obj->access_token,
'expires_in' => (time() +$token_obj->expires_in),
'ticket' =>$ticket_obj->ticket,
'ticket_time' => (time()+$ticket_obj->expires_in)
);
M('WxToken')->where('id=1')->save($data);
return $ticket_obj->ticket;
}else return 'error';
}else return 'error';
}else return $info['ticket'];
}
}