zoukankan      html  css  js  c++  java
  • 微信 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
    "); }
    
        $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;
      }
  • 相关阅读:
    360云盘、百度云、微云……为什么不出 OS X(Mac 端)应用呢?(用户少,开发成本高)(百度网盘Mac版2016.10.18横空出世)
    其实 Dropbox 的缺点也很明显,速度慢,空间小(我对国内的网盘的建议)
    为什么百度云、360云盘等都取消了同步盘功能?
    验证API
    操作系统进程压榨案例
    查询功能
    JavaScript 动画库和开发框架
    指针
    Attribute Routing
    自定义验证特性
  • 原文地址:https://www.cnblogs.com/shaoing/p/6080328.html
Copyright © 2011-2022 走看看