微信生成帶參數二維碼及響應操作


1.帶參數的二維碼介紹及使用場景介紹

 

- 為了滿足用戶渠道推廣分析和用戶帳號綁定等場景的需要,公眾平台提供了生成帶參數二維碼的接口。使用該接口可以獲得多個帶不同場景值的二維碼,用戶掃描后,公眾號可以接收到事件推送。不同的參數,可以相應不同的操作

- 使用場景:任何需要區分渠道的需求都適用

 

2.微信帶參數的二維碼分為兩種:

- 臨時二維碼,是有過期時間的,最長可以設置為在二維碼生成后的30天(即2592000秒)后過期,但能夠生成較多數量。臨時二維碼主要用於帳號綁定等不要求二維碼永久保存的業務場景

- 永久二維碼,是無過期時間的,但數量較少(目前為最多10萬個)。永久二維碼主要用於適用於帳號綁定、用戶來源統計等場景。

 

3.生成帶參數二維碼接口調用實例(這里生成的是永久性的二維碼,臨時性的差不多,只是改下參數,具體看微信開發文檔

 1 <?php
 2 $appId = "sdasdfasd";
 3 $appSecret = "asdfasdfadfasdfas";
 4 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}";
 5 
 6 // $output = getToken($url); 
 7 // $token = (array)json_decode($output);
 8 // $accessToken = $token['access_token'];
 9 // echo $accessToken;
10 
11 $accessToken = "adsfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfasdafdfasdfasdfasd";
12 
13 $data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 11}}}';
14 
15 //獲取二維碼的ticket的url
16 $url_get_Qcode_ticket = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={$accessToken}";
17 
18 $code = (array)json_decode(getShort($data, $url_get_Qcode_ticket)) ;
19 // echo $code['ticket'];
20 
21 
22 $ticket = $code['ticket'];
23 
24 //獲取二維碼的url
25 $url_get_Qcode = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={$ticket}";
26 
27 //運行程序會輸出一個二維碼圖片
28 echo getToken($url_get_Qcode);
29 
30 function getShort($data, $url) {
31     $ch = curl_init();
32     curl_setopt($ch, CURLOPT_URL, $url);
33     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
34     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
35     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
36     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko)");
37     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
38     curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
39     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
40     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
41  
42     $tmpInfo = curl_exec($ch);
43 
44     if (curl_errno($ch)){
45         return curl_error($ch);
46     }
47 
48     curl_close($ch);
49     return $tmpInfo;
50 }
51 
52 function getToken($url) {
53     $ch = curl_init();
54     curl_setopt($ch, CURLOPT_URL, $url);
55     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
56     curl_setopt($ch, CURLOPT_HEADER, 0);
57     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko)");
58     curl_setopt($ch, CURLOPT_ENCODING, "gzip");//加入gzip解析
59     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
60     $output = curl_exec($ch);
61     curl_close($ch);
62 
63     return $output;
64 }

運行如上代碼后,瀏覽器會輸出個圖片格式的二維碼,某些情況下回出現亂碼,此時更換瀏覽器試試,比如IE。。。

 

4.掃描帶參數的二維碼微信公眾平台響應實例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM