為了滿足用戶渠道推廣分析的需要,公眾平臺提供了生成帶參數(shù)二維碼的接口。使用該接口可以獲得多個帶不同場景值的二維碼,用戶掃描后,公眾號可以接收到事件推送。
用戶掃描帶場景值二維碼時,可能推送以下兩種事件:
(1)如果用戶還未關(guān)注公眾號,則用戶可以關(guān)注公眾號,關(guān)注后微信會將帶場景值關(guān)注事件推送給開發(fā)者。
(2)如果用戶已經(jīng)關(guān)注公眾號,在用戶掃描后會自動進入會話,微信也會將帶場景值掃描事件推送給開發(fā)者。
獲取帶參數(shù)的二維碼的過程包括兩步:(I)首先創(chuàng)建二維碼ticket;(II)然后憑借ticket到指定URL換取二維碼。
(I)首先創(chuàng)建二維碼ticket
每次創(chuàng)建二維碼ticket需要提供一個開發(fā)者自行設(shè)定的參數(shù)(scene_id)。
/** * 首先創(chuàng)建二維碼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后,開發(fā)者可用ticket換取二維碼圖片。請注意,本接口無須登錄態(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;
總結(jié)
以上所述是小編給大家介紹的微信接口生成帶參數(shù)的二維碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網(wǎng)站的支持!
【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。