AHdark
一个多语种开发蒟蒻
AHdark Blog

PHP 企业微信获取AccessToken(文件缓存)

/**
 * 发送Get请求到指定URL
 * @param string $url
 * @return array Curl Response
 */
function Curl_Get(string $url)
{
    $ch = curl_init();
    $headerArray = array("Content-type:application/json;", "Accept:application/json");
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
    $output = curl_exec($ch);
    curl_close($ch);
    $output = json_decode($output, true);
    return $output;
}

/**
 * 获取AccessToken
 * @param string $CorpID 企业ID
 * @param string $AgentSecret 应用Secret
 * @link 企业微信API文档 https://work.weixin.qq.com/api/doc/90000/90135/91039
 * @return string AccessToken
 * @api
 */
function GetAccessToken($CorpID, $AgentSecret)
{
    if (time() <= filemtime(__DIR__ . "ExpiresTime")) {
        return file_get_contents(__DIR__ . "AccessToken");
    }
    $URL = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" . $CorpID . "&corpsecret=" . $AgentSecret;
    $response = Curl_Get($URL);
    if ($response['errcode'] != 0) {
        print "Error: Can't get AccessToken.\n";
        print "Error " . $response['errcode'] . ": " . $response['errmsg'];
        die();
    }
    if (file_put_contents(__DIR__ . "AccessToken", $response['access_token']) == False) {
        print "Error: Can't writing AccessToken file.";
        die();
    }
    if (file_put_contents(__DIR__ . "AccessToken", time()) == False) {
        print "Error: Can't writing ExpiresTime file.";
        die();
    }
    return $response['access_token'];
}

缓存文件共有2个,本目录下的AccessTokenExpiresTime。请开发者自行适配至Class并标注Private

官方文档:https://work.weixin.qq.com/api/doc/90000/90135/91039

赞赏
本文链接:https://ahdark.com/technology/540.shtml
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可
欢迎加入Q群交流:654022768

AH Dark

文章作者

本博客的运营者、主要开发者、主要作者 深度学习算法工程师,后端工程师,嵌入式软件开发工程师 Azure认证 运维工程师

发表评论

textsms
account_circle
email

AHdark Blog

PHP 企业微信获取AccessToken(文件缓存)
PHP获取企业微信AccessToken并使用文件缓存的参照用代码,由AHdark撰写
扫描二维码继续阅读
2021-07-03