微信公众号生成带参数二维码(二)

853 阅读1分钟

先来看下二维码的形式,分为临时二维码和永久二维码

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,网上可以找到代码这里就不贴了