微信开发之——Php批量生成带参数的二维码
带参数的二维码对于渠道营销推广来说是很有用的,可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送,可喜的是微信开通了这个接口,那下面就来研究一下吧。
具体接口说明请参见,微信公众平台开发者文档(http://mp.weixin.qq.com/wiki/18/28fc21e7ed87bec960651f0ce873ef8a.html),我这里就直接上代码。
演示图:

由于带参数二维码生成是有限的,所有我是按编号生成的,下次生成的时候直接累加。
另外带设置有备注,方便以后统计。
 public function createewm(){
         if(IS_POST){
             $access_token=checkAccessToken($this->token);  //获取access_token
             $json_url='https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.$access_token;
             $action_name=$this->_post('action_name');   //生成类型(临时、永久)
             $create_num=$this->_post('create_num');     //生成数量
             //数据库里查询最后生成一个编号
             $now_secne_id=M('erweima')->where(array('token'=>$this->token))->order('scene_id desc')->getField('scene_id');
             //新生成在最后一个编辑上加1
             $start_secne_id=intval($now_secne_id)+1;
             $end_secne_id=intval($now_secne_id)+intval($create_num);
             $n=0;
             for($i=$start_secne_id;$i<=$end_secne_id;$i++){
                 $curl_data='';
                 if($action_name=='QR_SCENE'){
                     //临时 post的json数据
                     $curl_data='{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": '.$i.'}}}';
                 }
                 if($action_name=='QR_LIMIT_SCENE'){
                     //永久 post的json数据
                     $curl_data='{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": '.$i.'}}}';
                 }
                 $json_info=json_decode($this->api_notice_increment($json_url,$curl_data),true); 
                 //这里代表生成成功,记录数据以便插入到数据库,方便以后统计查找
                 if($json_info['errcode']!=40013){
                     $data[$n]['token']=$this->token;
                     $data[$n]['tiket']=$json_info['ticket'];
                     $data[$n]['url']=$json_info['url'];
                     $data[$n]['scene_id']=$i;
                     $data[$n]['expire_seconds']=$json_info['expire_seconds'];
                     $data[$n]['action_name']=$action_name;
                     $data[$n]['remark']='';
                     $data[$n]['createtime']=time();
                     $n++;
                 }else{
                     $this->error('操作失败');
                 }
             }
             if(count($data)>0){
                 $res= M('erweima')->addAll($data);//插入数据
                 if($res){
                     $this->success('添加成功');
                 }else{
                     $this->error('操作失败');
                 }
             }else{
                 $this->error('操作失败');
             }
         }
     }
function api_notice_increment($url, $data){
        $ch = curl_init();
        $header = "Accept-Charset: utf-8";
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $tmpInfo = curl_exec($ch);
        if (curl_errno($ch)) {
            //curl_close( $ch )
            return $ch;
        }else{
            //curl_close( $ch )
            return $tmpInfo;
        }
        curl_close( $ch ) ;
    }
很简单,基本够用了,喜欢就拿走
微信开发之——Php批量生成带参数的二维码的更多相关文章
- 微信公众号生成带参数的二维码asp源码下载
		
晚上闲着没事,一个朋友联系,让帮忙写一个微信公众号利用asp生成带参数的二维码,别人扫了后如果已经关注过该公众号的,则直接进入公众号里,如果没关注则提示关注,关注后自动把该微信用户资料获取到并且保存入 ...
 - Force.com微信开发系列(八)生成带参数的二维码
		
为了满足用户渠道推广分析的需要,公众平台提供了生成带二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送.目前有两种类型的二维码,分别是临时二维码和永久二维码 ...
 - C#微信公众号接口开发实例-高级接口-申请带参数的二维码
		
最近公司涉及到微信绑定用户,做了高级接口-申请带参数的二维码,总结了下微信开发接口.微信接口开发都是除了消息用的xml 回复基本上都是用json的形式传递信息(post/get),开发的方法基本都是一 ...
 - PHP生成带logo图像二维码的两种方法
		
本文主要和大家分享PHP生成带logo图像二维码的两种方法,主要以文字和代码的形式和大家分享,希望能帮助到大家. 一.利用Google API生成二维码Google提供了较为完善的二维码生成接口,调用 ...
 - C#生成带logo的二维码
		
带logo的二维码生成分为两步骤:首先根据输入的内容生成二维码图片,然后读取本地的logo图片,通过图片处理生成带logo的二维码. 生成的二维码效果如下: 下面直接贴出二维码生成类 QRCode ...
 - C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(二)
		
1.使用ZXint.Net生成带logo的二维码 /// <summary> /// 生成带Logo的二维码 /// </summary> /// <param name ...
 - phpqrcode生成带logo的二维码图片及带文字的二维码图片
		
<?php require_once "./phpqrcode/phpqrcode.php"; /** * 这样就可以生成二维码了,实际上在png这个方法里还有几个参数需要使 ...
 - js生成带参的二维码
		
最近项目中有需求生成带参的二维码,考虑过用JAVA后台生成返回前端展示,后面了解到用jquery的qrcode.js插件可以很好现实 引入js: require.config({ baseUrl : ...
 - .NET生成带Logo的二维码
		
使用ThoughtWorks.QRCode生成,利用这个库来生成带Logo的二维码(就是中间嵌了一个图片的二维码),直接见代码: HttpContext context = HttpContext.C ...
 
随机推荐
- 批量修改文件名(Python)
			
和上篇博文经历类似, 批量修改文件名字. : ) 不多说, 看图, 程序运行之前: 程序要做的事情呢, 就是挖出"[]"中的集数, 并用 “第[]集”来修改文件名字. 下面是Pyt ...
 - JDBC ----常用数据库的驱动程序及JDBC URL:
			
常用数据库的驱动程序及JDBC URL: Oracle数据库: 驱动程序包名:ojdbc14.jar 驱动类的名字:oracle.jdbc.driver.OracleDriver JDBC URL ...
 - 【转载】MySQL被慢sql hang住了,用shell脚本快速清除不断增长的慢sql的办法
			
原文地址:MySQL被慢sql hang住了,用shell脚本快速清除不断增长的慢sql的办法 作者:mchdba 某个初级dba误删index,mysql漫山遍野全是10S以上的慢sql,mysql ...
 - return *this和return this的区别
			
别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针). 正确答案为:return *this返回的是当前对象的克隆(当然, 这里仅考虑返回 ...
 - Android--消除“Permission is only granted to system apps”错误
			
原文:http://blog.csdn.net/gaojinshan/article/details/14230673 在AndroidManifest.xml中使用了如下的配置: <uses- ...
 - netlink---Linux下基于socket的内核和上层通信机制 (转)
			
需要在linux网卡 驱动中加入一个自己的驱动,实现在内核态完成一些报文处理(这个过程可以实现一种零COPY的网络报文截获),对于复杂报文COPY下必要的数据交给用户 态来完成(因为过于复杂的报文消耗 ...
 - ibatis.net demo
			
1. download ibatis.nethttps://code.google.com/p/mybatisnet/ 2. add all dll as reference to your proj ...
 - inputstream与其他格式的转换
			
1.InputStream 转换成InputSource . InputStream inputStream = request.getInputStream(); InputSource input ...
 - Version of SQLite used in Android?
			
sing the emulators (adb shell sqlite3 --version): SQLite 3.7.11: 19-4.4-KitKat 18-4.3-Jelly Bean 17- ...
 - 初涉Node.js
			
Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速,可扩展的网络应用程序的平台. Node.js使用事件驱动.非阻塞I/ O模型,是轻量级.高效.完美的跨分布式设备运 ...