本文為大家分享了php獲取微信基礎(chǔ)接口憑證Access_token的具體代碼,供大家參考,具體內(nèi)容如下
access_token是公眾號(hào)的全局唯一票據(jù),公眾號(hào)調(diào)用各接口時(shí)都需使用access_token。開(kāi)發(fā)者需要進(jìn)行妥善保存。access_token的有效期目前為2個(gè)小時(shí),需定時(shí)刷新,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。
使用AppID和AppSecret調(diào)用本接口來(lái)獲取access_token。AppID和AppSecret可在微信公眾平臺(tái)官網(wǎng)-開(kāi)發(fā)者中心頁(yè)中獲得。
1. 構(gòu)造一個(gè)請(qǐng)求函數(shù)
//設(shè)置網(wǎng)絡(luò)請(qǐng)求配置
public function _request($curl,$https=true,$method='GET',$data=null){
// 創(chuàng)建一個(gè)新cURL資源
$ch = curl_init();
// 設(shè)置URL和相應(yīng)的選項(xiàng)
curl_setopt($ch, CURLOPT_URL, $curl); //要訪問(wèn)的網(wǎng)站
//啟用時(shí)會(huì)將頭文件的信息作為數(shù)據(jù)流輸出。
curl_setopt($ch, CURLOPT_HEADER, false);
//將curl_exec()獲取的信息以字符串返回,而不是直接輸出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if($https){
//FALSE 禁止 cURL 驗(yàn)證對(duì)等證書(shū)(peer's certificate)。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); //驗(yàn)證主機(jī)
}
if($method == 'POST'){
curl_setopt($ch, CURLOPT_POST, true); //發(fā)送 POST 請(qǐng)求
//全部數(shù)據(jù)使用HTTP協(xié)議中的 "POST" 操作來(lái)發(fā)送。
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
// 抓取URL并把它傳遞給瀏覽器
$content = curl_exec($ch);
//關(guān)閉cURL資源,并且釋放系統(tǒng)資源
curl_close($ch);
return $content;
}
2.獲取票據(jù)并保存
//獲取令牌[access_token]
public function _getAccessToken(){
//指定保存文件位置
if(!is_dir('./access_token/')){
mkdir(iconv("UTF-8", "GBK", './access_token/'),0777,true);
}
$file = './access_token/token';
if(file_exists($file)){
$content = file_get_contents($file);
$cont = json_decode($content);
if( (time()-filemtime($file)) $cont->expires_in){
//當(dāng)前時(shí)間-文件創(chuàng)建時(shí)間token過(guò)期時(shí)間
return $cont->access_token;
}
}
$curl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credentialappid='.$this->_appid.'secret='.$this->_appsecret;
$content = $this->_request($curl);
file_put_contents($file,$content);
$cont = json_decode($content);
return $cont->access_token;
}
*出于安全考慮的話,獲取到的票據(jù)可以先編碼或加密再保存,使用的時(shí)候進(jìn)行解碼解密再使用!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- thinkphp框架使用JWTtoken的方法詳解
- PHP token驗(yàn)證生成原理實(shí)例分析
- thinkphp5框架API token身份驗(yàn)證功能示例
- ThinkPHP5.1表單令牌Token失效問(wèn)題的解決
- PHP實(shí)現(xiàn)防止表單重復(fù)提交功能【基于token驗(yàn)證】
- PHP中token的生成案例