• 微信公众平台带参数二维码配置工具的实现


    配置带参数的二维码同样需要先获取Access Token,获取方法在上一篇文章中有描述:http://www.cnblogs.com/leoyoungblog/p/5032249.html

    利用获取到的Access Token,可以创建二维码的Ticket。通过POST方法向服务器提交相关信息,JS代码如下:

     1         function getTicket()
     2         {
     3             var url = "qrcode_manage.php?access_token="+$("#accessToken").val();
     4             var qrcode_type = $("#qrType").val();
     5             var qrcode_scene_id = $("#qrSceneId").val();
     6             $.post(url,
     7                 {
     8                     "qrcode_type":qrcode_type,
     9                     "qrcode_scene_id":qrcode_scene_id
    10                 },
    11                 function (data,status) {
    12                     var result = eval("("+data+")");
    13                     $("#ticketInfo").css("display","block");
    14                     if(typeof (result["errcode"])!="undefined")
    15                     {
    16                         var errorInfo = "错误代码:"+result["errcode"]+";错误信息:"+result["errmsg"];
    17                         $("#ticketInfo").html(errorInfo);
    18                         $("#getQrcodeBtn").attr("disabled","disabled");
    19                     }
    20                     else
    21                     {
    22                         var successInfo = "获取Ticket 成功,Ticket:" + result["ticket"];
    23                         successInfo += "<br>url:" + result["url"];
    24                         $("#ticket").val(result["ticket"]);
    25                         $("#ticketInfo").html(successInfo);
    26                         $("#getQrcodeBtn").removeAttr("disabled");
    27                     }
    28                 }
    29             );
    30         }

    服务器端进行转发的PHP代码如下:   

     1     $access_token = $_GET["access_token"];
     2     $api_url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={$access_token}";
     3     $qrcode_type = $_POST["qrcode_type"];
     4     $qrcode_scene_id = (int)$_POST["qrcode_scene_id"];
     5     $qrcode_array = array();
     6     if($qrcode_type == "QR_SCENE")
     7     {
     8         $qrcode_array["expire_seconds"] = 604800; //七天
     9         $qrcode_array["action_name"] = "QR_SCENE";
    10     }
    11     else
    12     {
    13         $qrcode_array["action_name"] = "QR_LIMIT_SCENE";
    14     }
    15 
    16     $qrcode_array["action_info"]["scene"]["scene_id"] = $qrcode_scene_id;
    17     $qrcode_json = json_encode($qrcode_array);
    18     $ch = curl_init();
    19     curl_setopt($ch,CURLOPT_URL,$api_url);
    20     curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    21     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    22     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    23     curl_setopt($ch, CURLOPT_POST, 1);
    24     curl_setopt($ch, CURLOPT_POSTFIELDS, $qrcode_json);
    25     $json_result = curl_exec($ch);
    26     curl_close($ch);
    27     echo $json_result;

    之后,可以通过Ticket换取二维码,JS代码如下:

    1         function getQrcode()
    2         {
    3             var ticket = $("#ticket").val();
    4             var date = new Date();
    5             var url = "qrcode_manage.php?ticket="+ticket+"&time="+date.getTime();
    6             $("#qrcode").attr("src","qrcode_manage.php?ticket="+ticket+"&time="+date.getTime());
    7         }

    服务器端进行转发的PHP代码如下:    

        $ticket = $_GET["ticket"];
        $api_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={$ticket}";
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$api_url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $qrcode_result = curl_exec($ch);
        curl_close($ch);
        echo $qrcode_result;

    实现效果可访问:

    http://leo07.sinaapp.com/qrcode_manage.html

  • 相关阅读:
    CobaltStrike上线Linux主机(CrossC2)
    Active-Directory活动目录备忘录
    CVE-2020-5902 F5 BIG-IP 远程代码执行漏洞复现
    SSTI-服务端模板注入漏洞
    powershell代码混淆绕过
    绕过PowerShell执行策略方法
    "dpkg: 处理归档 /var/cache/apt/archives/libjs-jquery_3.5.1+dfsg-4_all.deb (--unpack)时出错"的解决方法
    firda安装和使用
    内网渗透-跨域攻击
    Web-Security-Learning
  • 原文地址:https://www.cnblogs.com/leoyoungblog/p/5032298.html
Copyright © 2020-2023  润新知