微信公众号获取AccessToekn

<?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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jsrdweiting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值