define('APPID', 'wx2fb728a57b78be86');
define('APPKEY', 'f6de3c320e0c75d0b83e43406d57982b');
define('WX','gh_743126a2ece1');
//獲取憑據access_token
function at(){
//如果緩存文件存在並且是7200秒之內更新的就直接讀取緩存文件
if(file_exists('./at') && time()-filemtime('./at')<7200){
return file_get_contents('./at');
}
//以get方式請求
$ret = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.APPID.'&secret='.APPKEY.'');
//把json轉爲數組,第二個參數爲true返回數組,false返回對象
$ret = json_decode($ret,true);
//寫入文件
file_put_contents('./at', $ret['access_token']);
return $ret['access_token'];
}
//生成二維碼
function qrcode($id){
$data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": '.$id.'}}}';
$ret = p_post('https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.at(),$data);
$ret = json_decode($ret,true);
//根據ticket獲取圖片
$img = file_get_contents('https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.UrlEncode($ret['ticket']));
file_put_contents("$id.png",$img);
}
//模擬post請求,既可以是http也可以是https
function p_post($url,$data,$https=true){
$curl = curl_init(); //啓動一個CURL會話
curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址
if($https){
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); //對認證證書來源的檢測
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); //從證書中檢查SSL加密算法是否存在
}
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); //模擬用戶使用的瀏覽器
curl_setopt($curl, CURLOPT_POST, 1); //發送一個常規的post請求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); //post提交的數據包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); //設置超時限制防止死循環
curl_setopt($curl, CURLOPT_HEADER, 0); //顯示返回的header區域內容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //獲取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); //執行操作
curl_close($curl); //關閉curl會話
return $tmpInfo; //返回數據
}
獲取access_token與生成永久二維碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.