目前有2种类型的二维码:json
一、临时二维码,是有过时时间的,最长能够设置为在二维码生成后的30天(即2592000秒)后过时,但可以生成较多数量。临时二维码主要用于账号绑定等不要求二维码永久保存的业务场景
二、永久二维码,是无过时时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于账号绑定、用户来源统计等场景。api用户扫描带场景值二维码时,可能推送如下两种事件:微信
若是用户还未关注公众号,则用户能够关注公众号,关注后微信会将带场景值关注事件推送给开发者。post
若是用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。测试
获取带参数的二维码的过程包括两步,首先建立二维码ticket,而后凭借ticket到指定URL换取二维码。this
//scene_id 写死仅为测试使用,生产环境,自行配制url
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 }