微信创建永久二维码

时间:2024-03-09 15:24:27

目前有2种类型的二维码:

1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。

用户扫描带场景值二维码时,可能推送以下两种事件:

如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。

如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。

获取带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码。

 

  //scene_id 写死仅为测试使用,生产环境,自行配制

 1 public function getQrcode($mch_id)
 2     {
 3         $access_token = $this->get_weixin_token();
 4         $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$access_token;
 5 
 6         //{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "123"}}}
 7 
 8         $data = array(
 9             \'action_name\' => \'QR_LIMIT_STR_SCENE\',//QR_SCENE为临时,QR_LIMIT_SCENE为永久,QR_LIMIT_STR_SCENE为永久的字符串参数值
10             \'action_info\' => array(
11                 \'scene\'=>array(
12                     \'scene_id\'=>1,
13                     \'scene_str\'=>$mch_id
14                 )
15             )
16         );
17 
18         $json = json_encode($data);
19         $ticket = http_post($url,$json);
20 
21         $ticketarray = json_decode($ticket,true);
22 
23         $imgurl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".$ticketarray[\'ticket\'];
24 
25         return $imgurl;
26     }