zoukankan      html  css  js  c++  java
  • 微信小程序生成二维码并且扫码跳转并且携带参数

    话不多说,直接上代码,直接把APPID和APPSECRET改成自己的就能用了

    <?php
    
    header('content-type:text/html;charset=utf-8');
    
    //配置APPID、APPSECRET
    
    $APPID = "APPID";
    
    $APPSECRET =  "APPSECRET";
    
    //获取access_token
    
    $access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET";
    
    
    
    //缓存access_token
    
     session_start();
    
     $_SESSION['access_token'] = "";
    
     $_SESSION['expires_in'] = 0;
    
    
    
     $ACCESS_TOKEN = "";
    
     if(!isset($_SESSION['access_token']) || (isset($_SESSION['expires_in']) && time() > $_SESSION['expires_in'])) {
    
    
    
         $json = httpRequest( $access_token );
    
         $json = json_decode($json,true);
    
         // var_dump($json);
    
         $_SESSION['access_token'] = $json['access_token'];
    
         $_SESSION['expires_in'] = time()+7200;
    
         $ACCESS_TOKEN = $json["access_token"];
    
     }else{
    
    
    
         $ACCESS_TOKEN =  $_SESSION["access_token"];
    
     }
    
    
    
    //构建请求二维码参数
    
    //path是扫描二维码跳转的小程序路径,可以带参数?id=xxx
    
    //width是二维码宽度
    
    $qcode ="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=$ACCESS_TOKEN";
    
    $param = json_encode(array("path"=>"pages/index/index?id=123","width"=> 150));
    
    
    
    //POST参数
    
    $result = httpRequest( $qcode, $param,"POST");
    
    //生成二维码
    file_put_contents("./qrcode.png", $result);
    
    
    
    
    //把请求发送到微信服务器换取二维码
    
      function httpRequest($url, $data='', $method='GET'){
    
        $curl = curl_init();
    
        curl_setopt($curl, CURLOPT_URL, $url);
    
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    
        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
    
        if($method=='POST')
    
        {
    
            curl_setopt($curl, CURLOPT_POST, 1);
    
            if ($data != '')
    
            {
    
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    
            }
    
        }
    
    
    
        curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    
        curl_setopt($curl, CURLOPT_HEADER, 0);
    
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
        $result = curl_exec($curl);
    
        curl_close($curl);
    
        return $result;
    
      }
    
    ?>

  • 相关阅读:
    在Salesforce中实现对Object的增删改查操作
    在Salesforce中通过编写C#程序调用dataloadercliq的bat文件取触发调用data loader来批量处理数据
    在Salesforce中通过dataloadercliq调用data loader来批量处理数据
    【LeetCode】189. Rotate Array
    【LeetCode】190. Reverse Bits
    【LeetCode】191. Number of 1 Bits
    【C++】不要想当然使用resize
    【LeetCode】174. Dungeon Game
    【LeetCode】Largest Number
    【DeepLearning】Exercise:Convolution and Pooling
  • 原文地址:https://www.cnblogs.com/junyi-bk/p/11672850.html
Copyright © 2011-2022 走看看