tp框架获取票据(基于‘’tp框架下获取AccessToken‘’)

// 获取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'];
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值