首先写一个qrcodeAdd方法,还要创建一个qrcode数据表,往里边添加数据,检测是否存在ticket,以下是这个方法
public function qrcodeAdd(){
if(IS_GET){
$this->display();
}else{
$mp = $this->mp;
$data = I('post.');
$data['mp_id'] = $mp['id'];
// dump($data);
// exit;
$id = M('qrcode')->add($data);
include APP_PATH . 'LaneWeChat/lanewechat.php';
$ret = Popularize::createTicket($data['qr_type'],$data['expire'],$data['scene_str']);
// dump($ret);
// exit;
if(isset($ret['ticket'])){
$ticket = $ret['ticket'];
$qrcodefile = Popularize::getQrcode($ticket);
$ret['src'] = $qrcodefile;
$ret['create_time'] = time();
// dump($ret);
// exit;
$model = M('qrcode')->where("id = $id")->save($ret);
$this->ajaxReturn(array('status'=>1,'msg'=>'ok','url'=>U('index')));
}else{
$this->ajaxReturn(array('status'=>0,'msg'=>$model));
}
}
}在这个方法里调用了两个方法在populaize这个文件中,分别传了参数
第一个是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 if($type == 2){
$template['action_name'] = 'QR_LIMIT_STR_SCENE';
}
$template['action_info']['scene']['scene_str'] = $sceneStr;
$template = json_encode($template);
// echo $template;
// exit;
return Curl::callWebServer($queryUrl, $template, $queryAction);
}第二个是getQrcode方法
public static function getQrcode($ticket){
$queryUrl = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.urlencode($ticket);
// dump($queryUrl);
// exit;
$queryAction = 'GET';
$result = Curl::callWebServer($queryUrl, '', $queryAction, 0);
$filename = './Public/qrcode/' . time() . '.jpg';
file_put_contents($filename, $result);
return $filename;
}好了,这样二维码就生成了。
5802

被折叠的 条评论
为什么被折叠?



