首頁 >後端開發 >php教程 >微信介面如何產生帶有參數的二維碼

微信介面如何產生帶有參數的二維碼

小云云
小云云原創
2018-03-20 15:44:333477瀏覽

為了滿足使用者管道推廣分析的需要,公眾平台提供了產生參數二維碼的介面。使用此介面可獲得多個不同場景值的二維碼,使用者掃描後,公眾號可以接收到事件推送。

用戶掃描帶場景值二維碼時,可能推送以下兩種事件:
(1)如果用戶尚未關注公眾號,則用戶可以關注公眾號,關注後微信會將帶場景值關注事件推送給開發者。
(2)如果使用者已經關注公眾號,在使用者掃描後會自動進入會話,微信也會將帶場景值掃描事件推送給開發者。

取得帶有參數的二維碼的過程包括兩個步驟:(I)先建立二維碼ticket;(II)然後憑藉ticket到指定URL換取二維碼。

(I)先建立二維碼ticket
每次建立二維碼ticket需要提供一個開發者自行設定的參數(scene_id)。

/**
 * 首先创建二维码ticket   
 * @param string $sceneid 场景值ID
 * @param string $type   值为'temp'的时候生成临时二维码
 * @param string $expire_seconds   二维码过期时间
 * @return string 二维码ticket 
 */
public function _getTicket($sceneid,$type='temp',$expire_seconds=604800){
	if($type=='temp'){
		$data = '{"expire_seconds": %s, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": %s}}}';
		$data = sprintf($data,$expire_seconds,$sceneid);
	}else{
		$data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": %s}}}';
		$data = sprintf($data,$sceneid);
	}
	$curl = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.$this->_getAccessToken();
	$content = $this->_request($curl,true,'POST',$data);
	$cont = json_decode($content);
	
	return $cont->ticket;
}


(II)然後憑藉ticket到指定URL換取二維碼
取得二維碼ticket後,開發者可用ticket換取二維碼圖片。請注意,本介面無須登入態即可呼叫。

//然后凭借ticket到指定URL换取二维码
public function _getQRCode($sceneid,$type='temp',$expire_seconds=604800){
	$ticket = $this->_getTicket($sceneid,$type,$expire_seconds);
	$curl = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.urlencode($ticket);
	$content = $this->_request($curl);
	return $content;
}

呼叫輸出:

header('Content-type:image.jpeg');
$result = $wechat->_getQRCode(30);
echo $result;

瀏覽器就可以直接輸出二維碼,,是一張圖片,可以直接展示或下載。

相關推薦:

Force.com微信開發產生帶參數的二維碼

微信開發生成帶參數的二維碼的實例

微信開發之-Php批量產生參數的二維碼,php參數_PHP教程

以上是微信介面如何產生帶有參數的二維碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn