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;
    
      }
    
    ?>

  • 相关阅读:
    POJ3233 构造子矩阵+矩阵快速幂
    HDU4565-数学推导求递推公式+矩阵快速幂
    记录一个状压DP用到的骚操作
    POJ1273 最大流模板
    图论复习...
    2017-7 实训经验贴
    Polya定理应用实例
    直线,椭圆,三角形,折线分割平面问题
    hdu4801 PocketCube 2阶魔方
    1256:献给阿尔吉侬的花束
  • 原文地址:https://www.cnblogs.com/junyi-bk/p/11672850.html
Copyright © 2011-2022 走看看