微信公众平台开发———— 生成带参数二维码
首先我们需要获取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

浙公网安备 33010602011771号