有2种类型的二维码: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)
public function qrcodeAdd(){
if (IS_GET) {
$this->display("qrcode_add");
}else{
$mp=$this->mp;
$arr=I('post.');
$arr['mp_id']=$mp['id'];
$id=M('qrcode')->add($arr);
//调用标签
$this->createTag($arr['scene_str']);
include APP_PATH . 'LaneWeChat/lanewechat.php';
$ret=Popularize::createTicket($arr['qr_type'],$arr['expire'],$arr['scene_str']);
if (isset($ret['ticket'])) {
$qrcodefile=Popularize::getQrcode($ret['ticket']);
$ret['src']=$qrcodefile;
$ret['create_time']=time();
M('qrcode')->where("id=$id")->save($ret);
$this->ajaxReturn(array('status'=>1,'msg'=>'ok'));
}else{
$this->ajaxReturn(array('status'=>0,'msg'=>$ret));
}
}
}
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);
}
一个公众号,最多可以创建100个标签。
//创建标签
public function createTag($tagname=''){
$mp=$this->mp;
// $tagname='126';
//查库是否有没有创建把tag和tag_id写到库中
$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=".getAccess_token();
$arr=array();
$arr['tag']['name']=$tagname;
$json=json_encode($arr,JSON_UNESCAPED_UNICODE);
// echo $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);
}
}
}
//为粉丝打标签
public function OpenidTag(){
$openid="o2E7t0gfBIXymb4a7y18N5tDPpug";
// include APP_PATH . 'LaneWeChat/lanewechat.php';
$api="https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=".getAccess_token();
$arr['openid_list']=array($openid);
$arr['tagid']=101;
$json=json_encode($arr);
// echo $json;
// exit();
include APP_PATH . 'LaneWeChat/lanewechat.php';
$ret=\LaneWeChat\Core\Curl::callWebServer($api,$json,'POST');
// print_r($ret);
}