每次創建二維碼ticket都需要提供一個開發者自行設定的參數(scene_id),分別介紹臨時二維碼和永久二維碼的創建二維碼ticket過程。
創建二維碼的請求接口如下。
https:// api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
臨時二維碼的POST數據格式如下。
{ "expire_seconds":1800, "action_name":"QR_SCENE", "action_info":{ "scene":{ "scene_id":100000 } } }
整型永久二維碼的POST數據格式如下。
{ "action_name":"QR_LIMIT_SCENE", "action_info":{ "scene":{ "scene_id":123 } } }
字符串型永久二維碼的POST數據格式如下。
{ "action_name":"QR_LIMIT_STR_SCENE", "action_info":{ "scene":{ "scene_str":"123" } } }
上述POST數據的參數說明如表8-1所示。
表8-1 生成二維碼請求的參數說明
提交數據後,數據返回格式如下。
{ "ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Br b3ZhYmJJAAIEZ23sUwMEmm3sUw==", "expire_seconds":60, "url":"http:// weixin.qq.com/q/NkPirMrlwhq7pBRqMm9M" }
上述數據的參數說明如表8-2所示。
表8-2 生成二維碼結果的參數說明
創建二維碼的程序實現如下。
1 $access_token = "xDx0pD_ZvXkHM3oeu5oGjDt1_9HxlA-9g0vtR6MZ-v4r7MpvZYC4ee4OxN97Lr 4irkPKE94tzBUhpZG_OvqAC3D3XaWJIGIn0eeIZnfaofO1C3LNzGphd_rEv3pIimsW9lO-4FOw 6D44T3sNsQ5yXQ"; 2 3 // 臨時 4 $qrcode = '{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 10000}}}'; 5 // 永久 6 $qrcode = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 1000}}}'; 7 8 $url = "https:// api.weixin.qq.com/cgi-bin/qrcode/create?access_token=$access_token"; 9 $result = https_request($url,$qrcode); 10 $jsoninfo = json_decode($result, true); 11 $ticket = $jsoninfo["ticket"]; 12 13 function https_request($url, $data = null) 14 { 15 $curl = curl_init; 16 curl_setopt($curl, CURLOPT_URL, $url); 17 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 18 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); 19 if (!empty($data)){ 20 curl_setopt($curl, CURLOPT_POST, 1); 21 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 22 } 23 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 24 $output = curl_exec($curl); 25 curl_close($curl); 26 return$output; 27 }