每次创建二维码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 }