夺命雷公狗---微信开发36----永久二维码1

目前有两种类型的二维码:

1,临时二维码,是有限时常的,7天,604800秒过期,但是能生成较多数量,主要途:KFC促销等

2,永久二维码,是无限时长的,但是数量最多值是10万个,主要用途:帐号绑定,用户来源统计等

用户扫描带场景时二维码时,可能推送以下两种事件:

1,如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者

2,如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者

生成带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码

二维码的英文别名一般都被称为:Quick Response Code,程序猿们一般都会称为qrcode

废话不多说,我们这里写3个永久的二维码,他们分别是电视来源(forever_qrcode.php),和杂志来源(forever_qrcode2.php),和其他来源(forever_qrcode3.php)

forever_qrcode.php代码如下,其他的子需要修改下$scene_id的值即可

<?php
    header("Content-Type:text/html;charset=utf-8");
    require_once "get_token.php";
    require_once "common.php";
    //首先我们申请一个二维码的ticket
    //比如我们规定$scene_id值10001表示场景是电视,10002表示杂志,10003表示其他来源
    $scene_id = ‘10001‘;
    //action_name 二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久,QR_LIMIT_STR_SCENE为永久的字符串参数值
    //action_info 二维码详细信息
    //scene_id 场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000)
    //scene_str 场景值ID(字符串形式的ID),字符串类型,长度限制为1到64,仅永久二维码支持此字段
    $post = ‘{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": ‘.$scene_id.‘}}}‘;
    $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={$access_token}";
    //发出http请求,申请ticket
    $res = http_request($url,$post);
    $str_json = json_decode($res);
    $ticket = $str_json->ticket;
    //通过ticket来换取二维码
    $ticket = urlencode($ticket);
    $url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={$ticket}";
    $filee = file_get_contents($url);
    //把该二维码文件保存到空间里的rqcode文件夹内,如果是linux系统要要修改下文件权限 chown -R www:www ./rqcode/
    $file_name = "qrcode{$scene_id}.jpg";
    file_put_contents("./qrcode/".$file_name,$filee);
    $rqcode_url = "http://weixin.showtp.com/qrcode/{$file_name}";
?>
<!DOCTYPE html>
<html>
    <head>
        <title>生成永久性二维码</title>
    </head>
    <body>
        <h1>生成永久性二维码之电视来源</h1>
        <img src="<?php echo $rqcode_url; ?>" />
    </body>
</html>

其他的文件分别如下图所示:

然后访问网站即可看到您所需要的效果如下:

温馨提示,在开发的时候发现了一个报错,报错信息如下图所示

在网上终于找到解决的办法,解决方法要修改php.ini,详情可以参考:http://www.cnblogs.com/leigood/p/5240699.html

时间: 2024-10-28 03:45:35

夺命雷公狗---微信开发36----永久二维码1的相关文章

夺命雷公狗---微信开发38----临时二维码

我们要做一个临时的二维码,就类似超市的最后抢购30秒. 临时二维码手册的查找方式几乎差不了什么 第一步都是需要先申请到一个ticket值,然后通过ticket值去换取二维码,temp_qrcode.php代码如下: <?php header("Content-Type:text/html;charset=utf-8"); require_once "get_token.php"; require_once "common.php"; //首

夺命雷公狗---微信开发37----永久二维码2

我们刚才已经生成永久的二维码了,现在我们开始让二维码如何知道是从哪里扫描进来的了,这一般都用在于让开发者们更加了解流量来源. 首先我们来设计一张表用来记录流量的来源,表如下所示: 我们还是老方法,看下手册 然后开始修改index.php文件, <?php /** * wechat php test */ //define your token require_once "common.php"; //这里是引入curl发送函数的类 require_once 'WeChat.cla

微信开发——带参数二维码的使用

---恢复内容开始--- 最近做微信PC端网页微信相关功能的开发,从一个新手的角度来说,微信公众号的文档还是不好理解的,网上找的帖子大都也都基本上是复制微信公众平台上给的文档,开发微信带参数二维码过程中还是遇到不少坑的,在此把我的开发过程比较详细的记录下,希望对大家有所帮助. 我本次开发使用的是认证服务号. 1 接入 首先进入微信公众号 -> 基本配置 下面是基本配置的页面,在URL中填写服务器地址,这个地址就是接受微信推送事件的一个接口,我是使用thinkPHP框架开发的程序,在其中一个Mod

夺命雷公狗---微信开发23----客服消息接口基础和推送文本

我们这边课程里面一共用到了三个文件,分别是WeChat.class.php和common.php以及index.php 我们在写这个功能之前也要学会查手册,手册我们可以在微信开发这里找到,如下所示: 点击进去后我们将会看到客服接口,我们可以点击下进去看看里面有什么动动 这里有一个发送文本消息的,我们点击进去看下 这里很明显就看到文本消息是通过一个json数据来进行实现的,废话不多说,开工 这里我们先来写一个WeChat.php的文件,这里作用主要适用于封装一个CURL上传类的,代码如下所示: <

夺命雷公狗---微信开发27----客服消息接口基础和推送图文消息

按照25课的套路在改下index.php即可实现,代码如下所示: <?php /** * wechat php test */ //define your token require_once "common.php"; //这里是引入curl发送函数的类 require_once 'WeChat.class.php'; define("TOKEN", "twgdh"); //这里让这个类继承了curl发送参数的类 class wechat

夺命雷公狗---微信开发60----在线点播电影网2之电影网整体完工

我们上一节课介绍了电影网的核心部分ckplayer播放器,那么我们按照上一节课的基础上来完成这个电影网. 我们先来穿件一个index.html,代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>夺命雷公狗之电影在线点播网</title> <!--宽高禁缩放 --> <meta name="viewpor

夺命雷公狗---微信开发39----微信语言识别接口1

语音识别接口的基本介绍 注意: 由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立即生效,对已关注用户需要24小时生效,开发者可以从新关注帐号进行测试. 我们可以在测试号下方的体验接口权限表里面找到“接收语音识别结果”,如下图所示 现在这里是显示的关闭,就是开启,如果想使用,那么就必“关闭”. 点击一下开启后,他就会问你是否关闭,所以这里的意思是相反的,如图所示: 然后再点击一下确定即可关闭. 不过我们现在要对他进行开发所以这里就要显示关闭这两个字,然后点击“接收语音识别结果”即可进入

夺命雷公狗---微信开发17----自定义菜单的事件推送,响应菜单的CLICK

废话不多说,index.php 代码如下所示: <?php /** * wechat php test */ //define your token require_once "common.php"; define("TOKEN", "twgdh"); $wechatObj = new wechatCallbackapiTest(); //当接入成功后,请注销这句话,否则,会反复验证. //$wechatObj->valid();

夺命雷公狗---微信开发47----获取用户地理位置接口(2)

我们现在要做的是查找距离最近的“肯德基”,我们需要通过百度提供的LBS云服务定位距离您最近的肯德基,该程序需要到LBS后台进行相关设置,然后在完成程序 用户在客户端输入“肯德基”公众号就会自动回复距离用户最近的”肯德基“ 废话不多说,我们先到http://developer.baidu.com/里面找到LBS云------再到服务接口--------再到LBS云,如下图所示: 点击进来后,我们首先要获取一个密钥, 然后出了红色框部分填下数据即可,别的地方都不用改,直接提交即可 上面的0.0.0.