微信公众号之用户管理

对用户进行打标签    

通常,在做一项活动时,我们会让用户关注官方微信,以便后期做服务的推广。那么对于一些大型企业来说,活动形式各样,不可能每次都是同一个二维码,更不可能每次都换一个微信公众号来让用户关注。

      那么,此时,我们可以针对不同的活动,来对用户进行管理,比如,可以针对不同活动对用户打不同的标签。这就要求我们要生成带参数的二维码。

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

在这里,我们以临时二维码为例:

首先创建二维码调用laneWechat的里面的createTicket

 public static function createTicket($type, $expireSeconds, $sceneStr){
        $accessToken=getAccess_token();
        $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{
            //永久
            $template['action_name'] = 'QR_LIMIT_STR_SCENE';
        }
        $template['action_info']['scene']['scene_str'] = $sceneStr;
        $template = json_encode($template,JSON_UNESCAPED_UNICODE);
        return Curl::callWebServer($queryUrl, $template, $queryAction);
    }

    /**
     * 生成带参数的二维码 - 第二步 通过ticket换取二维码
     * @param $ticket Popularize::createTicket()获得的
     * @param $filename String 文件路径,如果不为空,则会创建一个图片文件,二维码文件为jpg格式,保存到指定的路径
     * @return 直接echo本函数的返回值,并在调用页面添加header('Content-type: image/jpg');,将会展示出一个二维码的图片。
     */
    public static function getQrcode($ticket){
        $queryUrl = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.urlencode($ticket);
        $queryAction = 'GET';
        $result = Curl::callWebServer($queryUrl, '', $queryAction, 0);
        $filename = './Public/qrcode/'.time().'.jpg';
        file_put_contents($filename, $result);
   
        return $filename;
    }

//对二维码的路径进行处理
	public function qrcode(){
		$mp=getCurrentMp();
		$mp_id = $mp['id'];
		$data=M('qrcode')->where("mp_id='$mp_id'")->select();
		// print_r($data);
		// exit;
		foreach ($data as $value) {
			$value['src']=str_replace("./", "", $value['src']);
			$ret[]=$value;
			// print_r($ret);
			// exit;
		}
		$this->assign('data',$data);
		$this->display();
	}
	//添加二维码
	public function qrcodeAdd(){
		if(IS_GET){
			$this->display('qrcode_add');
		}else{
          	$arr=I('post.');
          	// print_r($arr);
          	// exit;
          	$data=$arr['scene_str'];
          	// print_r($data);
          	// exit;
          	$mp=getCurrentMp();
			$arr['mp_id'] = $mp['id'];
			$id=M('qrcode')->add($arr);
			include APP_PATH . 'LaneWeChat/lanewechat.php';
			$ret=Popularize::createTicket($arr['type'],$arr['expire'],$arr['scene_str']);
			// print_r($ret['ticket']);
			// exit;
			if(isset($ret['ticket'])){
				$qrcodefile=$this->downqrcode($ret['ticket']);
				$ret['src']=$qrcodefile;
				$ret['create_time']=time();
				M('qrcode')->where("id=$id")->save($ret);
				$this->ajaxReturn(array('status'=>1,'msg'=>'ok','url'=>U('qrcode')));
			}else{
				$this->ajaxReturn(array('status'=>0,'msg'=>$ret));
			}
		}
}
public function downqrcode($ticket){
     	//获取二维码图片
     	include APP_PATH . 'LaneWeChat/lanewechat.php';
     	$ret = $ret=Popularize::getQrcode($ticket);
     	return $ret;
     }
     //创建标签
public function createTag(){
		$tagname="11";
		$mp=getCurrentMp();
		$mp_id=$mp['id'];
		// print_r($mp_id);
		$accessToken=getAccess_token();
		$data=M('tags')->where("mp_id='$mp_id'")->select();
		// dump($data);
		// if(empty($data)){
			$url="https://api.weixin.qq.com/cgi-bin/tags/create?access_token=$accessToken";
			
			$arr=array();
			$arr['tag']['name']=$tagname;
			$json=json_encode($arr,JSON_UNESCAPED_UNICODE);
			// echo $json;
			// exit;
			include APP_PATH . 'LaneWeChat/lanewechat.php';
			$ret=Curl::callWebServer($url,$json,'POST');
			// print_r($ret);//存着ID和name;
			// exit;
			
			if($ret['tag']){
				$row['mp_id']=$mp_id;
				$row['tag_id']=$ret['tag']['id'];
				$row['tag']=$ret['tag']['name'];
			}
		
			$data = M('tags')->add($row);
			// print_r($data);
		// }
	}
  
//为粉丝打标签
	public function OpenidTag(){
		$openid="ogIZP1tzDJee-smh6FzJCVaO6QmY";
		$accessToken=getAccess_token();
		$url="https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=$accessToken";
		$arr['openid_list'] = array($openid);


		$arr['tagid']=106;
		$json=json_encode($arr);
        // echo $json;
        // exit;
		include APP_PATH . 'LaneWeChat/lanewechat.php';
	    $ret=Curl::callWebServer($url,$json,'POST');

	    print_r($ret);
	}
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值