微信公眾號獲取AccessToekn

jsrdweiting發表於2020-12-16
<?php
require_once("../log4php.php");
$logger = init_log("accessToken");

class AcessToken
{
    private $appid;
    private $secret;
    private $url = "https://api.weixin.qq.com/cgi-bin/token";
    private $cache_key = "wx_access_token";

    private function check_token_exist()
    {
        global $cache;
        if ($cache->check_cache($this->cache_key)) {
            return true;
        }
        return false;
    }
	/從資料庫中/獲取accesstoken,如果過期或者不存在則重新獲取
    public function get_token()
    {
        global $cache;
        if ($this->check_token_exist()) {
            return $cache->getCacheValue($this->cache_key);
        } else {
            return $this->set_token();
        }
    }
//accesstoken每2個小時過期一次,需要儲存,每1.5小時自動獲取一次並儲存
    public function set_token()
    {
        global $cache, $logger;
        $grant_type = "client_credential";
        $appid = $this->appid;
        $secret = $this->secret;
        $this->url .= "?grant_type=" . $grant_type . "&appid=" . $appid . "&secret=" . $secret;
        $data = $this->doget($this->url);
        $token = json_decode($data, true);
        if ($token && empty($token['errcode']) && !isset($token['errcode'])) {
            $cache->setCache($this->cache_key, $token['access_token'], 7200);
        }
        return $token;
    }
	//請求微信公眾號
    public function doget($url)
    {
        global $logger;
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);//設定header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $data = curl_exec($ch);
        if (!$data) {
            $logger->error("請求失敗失敗", curl_error($ch));
        }
        curl_close($ch);
        return $data;
    }
	//構造
    public function __construct($appid, $secret)
    {
        $this->appid = $appid;
        $this->secret = $secret;
    }
}

樣例下載地址:https://download.csdn.net/download/jsrdweiting/13685098

相關文章