学而实习之 不亦乐乎

PHP 获取并保存微信公众号的 access_token

2023-10-21 08:19:56

PHP 创建access_token.json文件,将access_token 和 生成时间expires 保存在其中,如下:

{"access_token":"xxxx","expires":1478799661}

代码如下:

function getToken(){
    $appid='你的appid';
    $appsecret='你的appsecret';
    $file = file_get_contents("./access_token.json",true);
    $result = json_decode($file,true);
    if (time() > $result['expires']){
        $data = array();
        $data['access_token'] = getNewToken($appid,$appsecret);
        $data['expires']=time()+7000;
        $jsonStr =  json_encode($data);
        $fp = fopen("./access_token.json", "w");
        fwrite($fp, $jsonStr);
        fclose($fp);
        return $data['access_token'];
    }else{
        return $result['access_token'];
    }
}

function getNewToken($appid,$appsecret){
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
    $access_token_Arr =  https_request($url);
    return $access_token_Arr['access_token'];
}

function https_request ($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        $out = curl_exec($ch);
        curl_close($ch);
        return  json_decode($out,true);
}