為了滿足使用者管道推廣分析的需要,公眾平台提供了產生參數二維碼的介面。使用此介面可獲得多個不同場景值的二維碼,使用者掃描後,公眾號可以接收到事件推送。
用戶掃描帶場景值二維碼時,可能推送以下兩種事件:
(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;
瀏覽器就可以直接輸出二維碼,,是一張圖片,可以直接展示或下載。
相關推薦:
微信開發之-Php批量產生參數的二維碼,php參數_PHP教程
以上是微信介面如何產生帶有參數的二維碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!