溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信接口如何生成帶參數(shù)的二維碼

發(fā)布時(shí)間:2021-06-24 11:42:55 來(lái)源:億速云 閱讀:238 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下微信接口如何生成帶參數(shù)的二維碼,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

為了滿足用戶渠道推廣分析的需要,公眾平臺(tái)提供了生成帶參數(shù)二維碼的接口。使用該接口可以獲得多個(gè)帶不同場(chǎng)景值的二維碼,用戶掃描后,公眾號(hào)可以接收到事件推送。

用戶掃描帶場(chǎng)景值二維碼時(shí),可能推送以下兩種事件:

(1)如果用戶還未關(guān)注公眾號(hào),則用戶可以關(guān)注公眾號(hào),關(guān)注后微信會(huì)將帶場(chǎng)景值關(guān)注事件推送給開(kāi)發(fā)者。

(2)如果用戶已經(jīng)關(guān)注公眾號(hào),在用戶掃描后會(huì)自動(dòng)進(jìn)入會(huì)話,微信也會(huì)將帶場(chǎng)景值掃描事件推送給開(kāi)發(fā)者。

獲取帶參數(shù)的二維碼的過(guò)程包括兩步:(I)首先創(chuàng)建二維碼ticket;(II)然后憑借ticket到指定URL換取二維碼。

(I)首先創(chuàng)建二維碼ticket

每次創(chuàng)建二維碼ticket需要提供一個(gè)開(kāi)發(fā)者自行設(shè)定的參數(shù)(scene_id)。

/** 
 * 首先創(chuàng)建二維碼ticket 
 * @param string $sceneid 場(chǎng)景值ID 
 * @param string $type 值為'temp'的時(shí)候生成臨時(shí)二維碼 
 * @param string $expire_seconds 二維碼過(guò)期時(shí)間 
 * @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后,開(kāi)發(fā)者可用ticket換取二維碼圖片。請(qǐng)注意,本接口無(wú)須登錄態(tài)即可調(diào)用。

//然后憑借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; 
}

調(diào)用輸出:

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

以上是“微信接口如何生成帶參數(shù)的二維碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI