调用ACC_token以及jsapi_ticket

调用ACC_token以及jsapi_ticket 的一些简单笔记

必须试用的几个方法

/**
 * HTTP_GET方法
 * @param $url
 * @return mixed
 */
function http_get($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_HEADER,0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}
/**
 * HTTP_POST方法
 * @param $url
 * @param $data
 * @return mixed
 */
function http_post($url, $data) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_HEADER,0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}

jsapi_ticket 调用

  //获取jsapi_ticket
function getJsapi_ticket($access_token){

    $arr1=M('wx_jsapi_ticket')->where(['id'=>1])->select();

    //判断是否为空,为空第一次添加jsapi_ticket
    if(!$arr1){
        //微信获取jsapi_ticket接口
        $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$access_token."&type=jsapi";
        //get请求接口
        $re=http_get($url);
        //将返回的json转换成数组
        $arr=json_decode($re,true);
        $jsapi_ticket=$arr['ticket'];
        //组装数组,添加到数据库(wx_jsapi_ticket表)
        $data['jsapi_ticket']=$jsapi_ticket;
        $data['time']=time();
        M('wx_jsapi_ticket')->where(['id'=>1])->save($data);
    }elseif($arr1[0]['time']+6000<time()){
        //判断jsapi_ticket是否过期,过期重新请求
        $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$access_token."&type=jsapi";
        $re=http_get($url);
        $arr=json_decode($re,true);
        $jsapi_ticket=$arr['ticket'];
        $data['jsapi_ticket']=$jsapi_ticket;
        $data['time']=time();
        //更新数据库里面的access_token
        M('wx_jsapi_ticket')->where(['id'=>1])->save($data);
    }else{
        //没有过期则用缓存起来的access_token
        $jsapi_ticket=$arr1[0]['jsapi_ticket'];
    }
    return $jsapi_ticket;
}

调用ACC_TOKEN
/** Get提交获取数据
 *  @desc 获取access token
 *  @return String access_token
 */
function getAccessToken($appid,$secret){
    //将access_token存在数据库中的方法
    $token= M('wx_access_token');
    $tokentime= $token->where('id=1')->find();
    // var_dump($tokentime);
    // var_dump(time());
    //判断access_token是否
    if($tokentime['access_token']==""||$tokentime['time']<time()){
        //过期了
        $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
        $res=json_decode(http_get($url));
        $map['access_token']=$res->access_token;
        $map['time']= time() + 200;
        $token->where('id=1')->save($map);
        $access_token = $map['access_token'];
    }else{
        //没有过期
        $access_token = $token->where('id=1')->getField('access_token');
    }
    return $access_token;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值