微信生成带参数的二维码有哪些应用场景?
“带参数的二维码” :每一个生成的二维码都带有参数,可以统计关注的每一个粉丝从哪里来的,做到渠道推广分析,但是关注的都是同一个公众号。
目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000)。两种二维码分别适用于帐号绑定、用户来源统计等场景。
用户扫描带场景值二维码时,可能推送以下两种事件:
如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。
获取带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码。
1. 创建标签
一个公众号,最多可以创建100个标签。
扫描二维码关注公众号,回复:
915074 查看本文章
接口调用请求说明
http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN
{ "tag" : { "name" : "广东"//标签名 } }
返回说明(正常时返回的json数据包示例)
{ "tag":{ "id":134,//标签id "name":"广东" } }
创建标签代码;
public function createTag($tagname=""){ $mp = $this->mp; $where['mp_id'] = $mp['id']; $where['tag'] = $tagname; $data = M('tags')->where($where)->find(); if(empty($data)){ $api = "https://api.weixin.qq.com/cgi-bin/tags/create?access_token=$accessToken";//调用接口 $arr = array(); $arr['tag']['name'] = $tagname; $arr = json_encode($arr,JSON_UNESCAPED_UNICODE);//转换格式 include APP_PATH .'LaneWeChat/lanewechat.php';//引入方法 $ret = Curl::callWebServer($api,$arr,'POST'); if($ret['tag']){ $row['mp_id'] = $mp['id'];//返回ID号 $row['tag'] = $ret['tag']['name']; $row['tag_id'] = $ret['tag']['id']; $resust=M('tags')->add($row); //更新数据库数据 } } }
生成二维码实现代码:
public static function createTicket($type, $expireSeconds, $sceneStr){ $accessToken = getAccess_token();//获取accesstoken $queryUrl = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.$accessToken;//调用接口 $queryAction = 'POST'; $template = array(); if($type == 1){//构建数组 $template['expire_seconds'] = $expireSeconds; $template['action_name'] = 'QR_STR_SCENE'; }else if($type == 2){ $template['action_name'] = 'QR_LIMIT_STR_SCENE'; } $template['action_info']['scene']['scene_str'] = $sceneStr; $template = json_encode($template); //转换json串 return Curl::callWebServer($queryUrl, $template, $queryAction); }