微信公衆番号はパラメータ付きQRコードを作成し、パラメータ付きQRコードをスキャンしたファンにラベルを付ける.

2943 ワード

1.パラメータ付きQRコードを作成する:①微信インタフェース
http    :POST(   https  )
https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN

POSTデータ例:
{   "tag" : {     "name" : "  "//      } }

戻り説明(通常時に返されるjsonパケットの例)
{   "tag":{ "id":134,//  id "name":"  "   } }

2.スキャンパラメータ付きQRコードのファンにラベルを付ける
インタフェース呼び出し要求の説明
http    :POST(   https  )
https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=ACCESS_TOKEN

POSTデータ例が正しく返される:
{   "openid_list" : [//        
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",    
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"   ],   
"tagid" : 134 }
コードは次のとおりです.
public function qrcodeAdd(){
		if(IS_GET){
			$this->display('qrcode_add');
		}else{
			$data = I('post.');
			// print_r($data);
			// exit;
			$scene_str = $data['scene_str'];
			$expire = $data['expire'];
			// echo $expire;
			// exit;
			$type = $data['qr_type'];
			// echo $type;
			// exit;
			$this->createtag($scene_str);
			$mp = getCurrentMp();
			$data['mp_id'] = $mp['id'];
			$id = M('mp_qrcode')->add($data);
			$ret = Popularize::createTicket($type,$expire,$scene_str);
			// print_r($ret);
			if(isset($ret['ticket'])){
				$temp = Popularize::getQrcode($ret['ticket']);
				// echo $temp;
				// exit;
				$ret['src'] = str_replace("./" , "/",$temp);
				$ret['create_time'] = time();
				$result = M('mp_qrcode')->where("id=$id")->save($ret);

				$this->ajaxReturn(array('status'=>1,'msg'=>'OK','url'=>U('index')));
			}else{
				$this->ajaxReturn(array('status'=>0,'msg'=>$ret));
			}
		}
		

	}
	public function createtag($tagname=""){
		// $tagname = "  ";
		$mp = getCurrentMp();
		$mp_id = $mp['id'];
		$where['mp_id'] = $mp_id;
		$where['tag'] = $tagname;
		$ret = M('mp_tags')->where($where)->select();
		// print_R($ret);
		// exit;
		
		// print_r($data);
		// exit;
		
		if(empty($ret)){
			$access_token = getAccess_token();
			$queryurl = "https://api.weixin.qq.com/cgi-bin/tags/create?access_token=$access_token";
			$arr['tag']['name'] = $tagname; 
			$data = json_encode($arr,JSON_UNESCAPED_UNICODE);
			$result = Curl::callWebServer($queryurl, $data, 'POST');
			// print_r($result);
			// exit;
			if(isset($result['tag']['id'])){
				$arr1['tag_id'] = $result['tag']['id'];
				$arr1['tag'] = $result['tag']['name'];
				$arr1['mp_id'] = $mp_id;
				$temp = M('mp_tags')->add($arr1);
			}
		}
	}