微信二次開發(生成二維碼)

小李李李李發表於2018-04-26
public function qrcodeAdd(){
    	if (IS_GET) {
    	 $this->display();
    	}else{
    		$mp=$this->mp;
    		$arr=I('post.');
    		$arr['mp_id']=$mp['id'];
    		$id=M('weixin_qrcode')->add($arr);


            //呼叫建立標籤
            $this->createTag($arr['scene_str']);

    		include APP_PATH . 'LaneWeChat/lanewechat.php';
    		$ret=Popularize::createTicket($arr['type'],$arr['expire'],$arr['scene_str']);
    		if (isset($ret['ticket'])) {
    			$qrcodefile=Popularize::getQrcode($ret['ticket']);
    			$ret['src']=$qrcodefile;
    			$ret['create_time']=time();
    			M('weixin_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 createTag($tagname=""){
        $mp = $this->mp;
        // $tagname = "123";
        $where['mp_id'] = $mp['id'];
        $where['tag'] = $tagname;
        $data = M("tags")->where($where)->find();
        if(empty($data)){
            $api ="http://api.weixin.qq.com/cgi-bin/tags/create?access_token=".getAccess_token();
            $arr = array();
            $arr['tag']['name'] = $tagname;
            $json = json_encode($arr,JSON_UNESCAPED_UNICODE);

            // dump($json);
            // exit;

            include APP_PATH.'LaneWeChat/lanewechat.php';
            $ret = \LaneWeChat\core\Curl::callWebServer($api,$json,'POST');
            if($ret['tag']){
                $row['mp_id'] = $mp['id'];
                $row['tag_id'] = $ret['tag']['id'];
                $row['tag'] = $ret['tag']['name'];

                M('tags')->add($row);
            }
        }
    }

建立標籤

如果使用者還未關注公眾號,則使用者可以關注公眾號,關注後微信會將帶場景值關注事件推送給開發者。

如果使用者已經關注公眾號,在使用者掃描後會自動進入會話,微信也會將帶場景值掃描事件推送給開發者。

獲取帶引數的二維碼的過程包括兩步,首先建立二維碼ticket,然後憑藉ticket到指定URL換取二維碼。


相關文章