首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》8.1.1 创建二维码ticket

关灯直达底部

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