微信公众平台生成带参数的二维码

微信生成带参数的二维码有哪些应用场景?

“带参数的二维码” :每一个生成的二维码都带有参数,可以统计关注的每一个粉丝从哪里来的,做到渠道推广分析,但是关注的都是同一个公众号。

目前有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);
    }

猜你喜欢

转载自blog.csdn.net/ruipuwangluo/article/details/80101389
今日推荐