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换取二维码。