微信 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;
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM