• 微信生成带参数二维码及响应操作


    1.带参数的二维码介绍及使用场景介绍

    - 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。不同的参数,可以相应不同的操作

    - 使用场景:任何需要区分渠道的需求都适用

    2.微信带参数的二维码分为两种:

    - 临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景

    - 永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。

    3.生成带参数二维码接口调用实例(这里生成的是永久性的二维码,临时性的差不多,只是改下参数,具体看微信开发文档

     1 <?php
     2 $appId = "sdasdfasd";
     3 $appSecret = "asdfasdfadfasdfas";
     4 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}";
     5 
     6 // $output = getToken($url); 
     7 // $token = (array)json_decode($output);
     8 // $accessToken = $token['access_token'];
     9 // echo $accessToken;
    10 
    11 $accessToken = "adsfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfasdafdfasdfasdfasd";
    12 
    13 $data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 11}}}';
    14 
    15 //获取二维码的ticket的url
    16 $url_get_Qcode_ticket = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={$accessToken}";
    17 
    18 $code = (array)json_decode(getShort($data, $url_get_Qcode_ticket)) ;
    19 // echo $code['ticket'];
    20 
    21 
    22 $ticket = $code['ticket'];
    23 
    24 //获取二维码的url
    25 $url_get_Qcode = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={$ticket}";
    26 
    27 //运行程序会输出一个二维码图片
    28 echo getToken($url_get_Qcode);
    29 
    30 function getShort($data, $url) {
    31     $ch = curl_init();
    32     curl_setopt($ch, CURLOPT_URL, $url);
    33     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
    34     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    35     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    36     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko)");
    37     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    38     curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    39     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    40     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    41  
    42     $tmpInfo = curl_exec($ch);
    43 
    44     if (curl_errno($ch)){
    45         return curl_error($ch);
    46     }
    47 
    48     curl_close($ch);
    49     return $tmpInfo;
    50 }
    51 
    52 function getToken($url) {
    53     $ch = curl_init();
    54     curl_setopt($ch, CURLOPT_URL, $url);
    55     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    56     curl_setopt($ch, CURLOPT_HEADER, 0);
    57     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko)");
    58     curl_setopt($ch, CURLOPT_ENCODING, "gzip");//加入gzip解析
    59     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    60     $output = curl_exec($ch);
    61     curl_close($ch);
    62 
    63     return $output;
    64 }

    运行如上代码后,浏览器会输出个图片格式的二维码,某些情况下回出现乱码,此时更换浏览器试试,比如IE。。。

    4.扫描带参数的二维码微信公众平台响应实例

  • 相关阅读:
    BZOJ 1003--[ZJOI2006]物流运输(最短路)
    BZOJ 1002--[FJOI2007]轮状病毒(高精度)
    BZOJ 1001--[BeiJing2006]狼抓兔子(最短路&对偶图)
    BZOJ 1719--[Usaco2006 Jan] Roping the Field 麦田巨画(几何&区间dp)
    BZOJ 2821--作诗(分块)
    BZOJ 2724--蒲公英(分块)
    BZOJ 2388--旅行规划(分块&单调栈&二分)
    用python操作Git
    JS常用到的日期函数
    Python3.7使用celery出现from . import async, base SyntaxError: invalid syntax错误
  • 原文地址:https://www.cnblogs.com/fangfeiyue/p/7418837.html
Copyright © 2020-2023  润新知