先来看下二维码的形式,分为临时二维码和永久二维码
1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
生成带参数的二维码,首先需要获取access_token,通过官方接口携带access_token,post抛送json数据包生成专属的ticket,最后通过官方携带ticket的接口生成二维码和二维码过期日期,下面以PHP代码示例
生成带参数的二维码PHP代码示例
$url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" . getToken();
$post_data = [
"expire_seconds" => 2592000, //30天过期
"action_name" => 'QR_STR_SCENE', //字符串参数值
"action_info" => [
'scene' => [
'scene_str' => $province . '-' . $kw_id . '-' . $bmb_id,
],
],
];
$json_data = json_encode($post_data);
$res = $this->json_post($url, $json_data); //封装的json格式的curl
$res = json_decode($res, true); //转换json格式
$Qrcode_url = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . $res['ticket'];
$expire_time = time() + $res['expire_seconds'];
$return_data = [
'Qrcode_url' => $Qrcode_url,
'expire_seconds' => $expire_time,
];
return $return_data;
json_post() 里是自己封装的curl,网上可以找到代码这里就不贴了