微信公众平台开发———— 生成带参数二维码
首先我们需要获取ticket
每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id),分别介绍临时二维码和永久二维码的创建二维码ticket过程。
这里我是使用THINKPHP来写的
我写的获取方法如下:
//生成ticket //uid为带的参数 function getticket($appid,$secret,$uid){ //查询微信公众号配置信息 if (!session(access_token)) { //先获取开发者access_token $token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret; // 获取远程文件内容 $output = fopen_url($token_url); $jsoninfo = json_decode($output, true); $access_token = $jsoninfo["access_token"]; session(array('access_token'=>$access_token,'expire'=>7200)); //access_token只有二小时有效期 }else{ $access_token = session(access_token); } //获取ticket $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$access_token; $post_data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": '.$uid.'}}}'; //二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久,QR_LIMIT_STR_SCENE为永久的字符串参数值 $tic_con = https_post($url, $post_data); $tic_con = json_decode($tic_con, true); $ticket = $tic_con['ticket']; return $ticket; }
/** * 发送post请求 * @param string $url 请求地址 * @param array $data post键值对数据 * @return string */ function https_post($url, $data) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; }
场景二维码的URL