日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

微信卡券獲取api_ticket及緩存

時(shí)間:2018-03-12 00:05:31 類型:PHP
字號(hào):    

api_ticket 是用于調(diào)用微信卡券JS API的臨時(shí)票據(jù),有效期為7200 秒,通過(guò)access_token 來(lái)獲取。

開(kāi)發(fā)者注意事項(xiàng):

1.此用于卡券接口簽名的api_ticket與步驟三中通過(guò)config接口注入權(quán)限驗(yàn)證配置使用的jsapi_ticket不同。

2.由于獲取api_ticket 的api 調(diào)用次數(shù)非常有限,頻繁刷新api_ticket 會(huì)導(dǎo)致api調(diào)用受限,影響自身業(yè)務(wù),開(kāi)發(fā)者需在自己的服務(wù)存儲(chǔ)與更新api_ticket。


/*獲取api_ticket begin
	api_ticket 是用于調(diào)用微信卡券JS API的臨時(shí)票據(jù),有效期為7200 秒,通過(guò)access_token 來(lái)獲取。*/
	public function make_api_ticket(){
			 $access_token = $this->get_access_token();
			 // echo $access_token; 
			 $url = sprintf("https://api.weixin.qq.com/cgi-bin/ticket/getticket
?access_token=%s&type=wx_card", $access_token);
			 $res = json_decode($this -> get_curl_contents($url), true);
			 if($res && isset($res["errmsg"])){
			 	//將獲得的 ticket 存儲(chǔ)到文件中
				$file_path = ROOT_PATH."/up/wx/wx_api_ticket.php";
				$myfile = fopen($file_path, "w") or die("不能寫入文件");
				$expire_time = time() + $res['expires_in'];
				$txt = "<?php\n";
				$txt .= "	return array(\n";
				$txt .= "          'wx_api_ticket'=>'".$res['ticket']."',\n" ;
				$txt .= "          'expire_time'=>'".$expire_time."',\n" ;
				$txt .= "	);\n";
				$txt .= "?>\n";
				fwrite($myfile, $txt);
				fclose($myfile);
				return $res['ticket'];
			}
			else{
				$this->make_api_ticket();
			}
	}
	//獲取api_ticket end
//curl獲取請(qǐng)求文本內(nèi)容
	public function get_curl_contents($url, $data = null) {
			$curl = curl_init(); //初始化
    		curl_setopt($curl, CURLOPT_URL, $url);//設(shè)置抓取的url 為 $requesturl
    		curl_setopt($curl, CURLOPT_HEADER, 0);//設(shè)置頭文件的信息作為數(shù)據(jù)流輸出
    		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    		//設(shè)置獲取的信息以文件流的形式返回,而不是直接輸出。
    		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //跳過(guò)證書(shū)驗(yàn)證
    		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  // 從證書(shū)中檢查SSL加密算法是否存在
			if (!empty($data)){
		        curl_setopt($curl, CURLOPT_POST, 1);  //POST請(qǐng)求
		        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
		    } 
    		$data = curl_exec($curl);//執(zhí)行命令
    		curl_close($curl);//關(guān)閉URL請(qǐng)求
		    return $data;
	}