Heim  >  Artikel  >  Backend-Entwicklung  >  PHP generiert QR-Code für das WeChat-Applet mit Parametern

PHP generiert QR-Code für das WeChat-Applet mit Parametern

不言
不言Original
2018-07-14 10:32:338401Durchsuche

In diesem Artikel wird hauptsächlich der von PHP für das WeChat-Applet generierte QR-Code vorgestellt. Er hat einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf verweisen Das Mini-Programm öffnet offiziell drei Schnittstellen zum Erstellen von QR-Codes, von denen eine zum Generieren von QR-Codes dient und die andere ein sonnenblumenförmiger Mini-Programmcode ist, den ich hier zum Generieren von QR-Codes verwende.

Zuerst müssen Sie das Access_token erhalten

Diese Anfrage ist auch sehr einfach. Die WeChat-Entwicklungsdokumentation verfügt über eine Anfrageschnittstelle:

Sie müssen die APPID erhalten und APPSECRET Ihres Miniprogramms

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

access_token ist nur 2 Stunden gültig, daher ist es am besten, es zwischenzuspeichern, um wiederholte Anfragen zu vermeiden

Anforderungsparameter erstellen

Sie können ein Array erstellen, es dann in JSON-Daten konvertieren und einer Variablen zuweisen PHP generiert QR-Code für das WeChat-Applet mit Parametern

$param = json_encode(array("path"=>"pages/index/index?id=123","width"=> 150));
Dann senden Sie die POST-Daten im Austausch gegen einen QR-Code an den WeChat-Server

Vollständiger Code

 $_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);
$base64_image ="data:image/jpeg;base64,".base64_encode( $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;
  } 

?>
Verwendung:

1. Erstellen Sie eine neue qrcode.php

2. Ändern Sie die APPID und APPSECRET

4. Besuchen Sie qrcode.php


, um ein kleines Programm mit Parametern 2 QR-Code zu generieren

Diese Schnittstelle generiert jedoch einen kleinen Programm-QR-Code mit einem LOGO .

Wir möchten einen einfachen QR-Code für ein kleines Programm ohne Logo generieren. Ist das in Ordnung? PHP generiert QR-Code für das WeChat-Applet mit ParameternOffiziell gibt es keine Möglichkeit, aber wir können eine Schnittstelle eines Drittanbieters verwenden, um gewöhnliche QR-Codes zu generieren.

Schritte zum Generieren eines QR-Codes ohne Logo

1. Dekodieren Sie zuerst den QR-Code des gerade generierten Miniprogramms und rufen Sie die URL ab

2 die URL Die QR-Code-Generierungsschnittstelle generiert normale QR-Codes ohne LOGO

1 Tatsächlich gibt es hier viele Bibliotheken zum Dekodieren ist kostenlos und erfordert eine Anwendung.

<h2>生成无LOGO二维码</h2>
nbsp;html>

  
    <title>PHP生成微信小程序二维码</title>
    <meta>
    <meta>
    <script></script>
    <script></script>
    <script></script>
  
  
    <!--显示二维码-->
    <p></p>
    <p>
        <input>
        <br>
        <img  alt="PHP generiert QR-Code für das WeChat-Applet mit Parametern" >
    </p>
    <a>点击生成无LOGO二维码</a>
    <script>

    var get_timestamp = function(){
        var timestamp =0;
        timestamp = Date.parse(new Date());// 获取当前时间戳(以s为单位)
        timestamp = timestamp / 1000;
        return timestamp;
    };

    //config,申请解码接口:http://www.wwei.cn/,免费
    var api_id = &#39;xxxxxxx&#39;;//改为您自己的
    var api_key = &#39;xxxxxxxxx&#39;;//改为您自己的
    var timestamp = get_timestamp();
    var client = hprose.Client.create(&#39;http://hprose.wwei.cn/qrcode.html&#39;, [&#39;qrencode&#39;,&#39;qrdecode&#39;]);

    //解码
    $("#qrdecode").click(function(){
            var timestamp = get_timestamp();
            var imgurl = &#39;&#39;;//远程图片
            var imgdata =&#39;<?php echo $base64_image;?>&#39;;//本地图片,直接调用生成的官方小程序二维码,用于解码
            var signature = md5(api_key + timestamp + imgurl + imgdata);
            client.ready(function(qrcode) {
                qrcode.qrdecode(api_id,signature,timestamp,imgurl,imgdata)
                .then(function(result) {
                    if(result.status !=1){
                        alert(result.msg);
                        return ;
                    }

                    //生成无LOGO二维码api接口
                    var qrcodeapi = "http://qr.liantu.com/api.php?text=";
                    //拼接接口+解码url并输出为图片
                    $("#show_test").html(&#39;<img  src="&#39;+qrcodeapi+result.data.raw_text+&#39;"/ alt="PHP generiert QR-Code für das WeChat-Applet mit Parametern" >&#39;);
                },function(e) {
                    console.error(e);
                });
            },
            function(e) {
                console.error(e);
            });
    });
    </script>
  

Das Obige ist die Dekodierung durch js. Die Dekodierung ruft immer noch eine Bildadresse des von PHP generierten QR-Codes auf Rufen Sie also ein lokales Bild auf. Dieses Dekodierungsprogramm muss in Verbindung mit dem PHP-Code verwendet werden, der den QR-Code für das Miniprogramm generiert.

Nach der Dekodierung muss ein QR-Code ohne Logo generiert werden. Dazu muss ich lediglich eine Schnittstelle aufrufen.

Schnittstelle: http://qr.liantu.com/api.php?...

Durch das Zusammenfügen der dekodierten URL kann dann ein QR-Code generiert werden.

Dann ist die Kombination aus der Generierung von Miniprogrammcode und der Generierung von Code ohne LOGO-QR-Code:

<?php  echo $base64_image;?>
Aber für die Dekodierung werden zwei js-Bibliotheken benötigt

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website. PHP generiert QR-Code für das WeChat-Applet mit Parametern

Verwandte Empfehlungen:

PHP-Experte geteilt: PHP-Code-Schreibspezifikationen, eine vollständige Zusammenfassung

Für PHP-Zusammenfassung der Fünf Prinzipien des objektorientierten Designs (SOLID)

Das obige ist der detaillierte Inhalt vonPHP generiert QR-Code für das WeChat-Applet mit Parametern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn