微信 token ticket jsapi_ticket access_token 获取 getAccessToken get_jsapi_ticket方法

 获取jsapi_ticket

function get_jsapi_ticket()//依赖getAccessToken、https_request
{
    //从memcache中获取
    $mmc = memcache_init(); if($mmc == false){ logger("mc init failed\n"); }

    $last_time = memcache_get($mmc,"jsapi_last_time");
    $jsapi_ticket = memcache_get($mmc,"ticket");
    if(time() > ($last_time + 7200) || empty($jsapi_ticket)){
        $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".getAccessToken()."&type=jsapi";
        $result = https_request($url);
        
        memcache_set($mmc,"jsapi_ticket", $result["ticket"]);
        memcache_set($mmc,"jsapi_last_time", time());
        
        if(empty($result["ticket"])){ echo 'jsapi_ticket null'; die;}
        return $result["ticket"]; 
    }
    return $jsapi_ticket;
}

 

 

memcache缓存存储用户信息7000秒

<?php
function getAccessToken($appid,$appsecret) 
{
    $mem = new CacheMemcache();
    $acc = $mem->get('access_token_'.$appid);
    if (!$acc) 
    {
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
        $result = https_request($url);
        $jsoninfo = json_decode($result, true);
        $access_token = $jsoninfo['access_token'];
        if ($access_token) 
        {
            $expire = time() + 7000;
            $mem = new CacheMemcache();
            $mem->set('access_token_'.$appid,$access_token,$expire);
        }
    }
    else 
    {
        $access_token = $acc;
    }
    return $access_token;
}
?>

 

文件存储access_token

 function getAccessToken() {
    // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
    $data = json_decode(file_get_contents("access_token.json"));
    if ($data->expire_time < time()) {
      $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
      $res = json_decode($this->httpGet($url));
      $access_token = $res->access_token;
      if ($access_token) {
        $data->expire_time = time() + 7000;
        $data->access_token = $access_token;
        $fp = fopen("access_token.json", "w");
        fwrite($fp, json_encode($data));
        fclose($fp);
      }
    } else {
      $access_token = $data->access_token;
    }
    return $access_token;
  }

 

转载于:https://www.cnblogs.com/shaoing/p/6080328.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值