• 夺命雷公狗---微信开发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

  • 相关阅读:
    sqlserver调优-索引
    浮点数的这些坑,你未必知道-深入理解浮点数的规律
    生产环境部署springcloud微服务启动慢的问题排查
    redis传输协议规范-下(Redis Protocol specification)
    一步步完成“迷你版” 的ASP.NET Core框架
    安全漏洞整改系列(一)
    docker实战(二)之redis的使用
    docker实战(一)之Tomcat的安装
    docker安装步骤
    WPF后台操作前台元素之查找对象
  • 原文地址:https://www.cnblogs.com/leigood/p/5240709.html
Copyright © 2020-2023  润新知