>백엔드 개발 >PHP 튜토리얼 >PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다.

PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다.

不言
不言원래의
2018-07-14 10:32:338486검색

이 글은 주로 WeChat 미니 프로그램용으로 생성된 QR 코드를 소개합니다. 이제 특정 참고 가치가 있습니다. 필요한 친구들이 참조할 수 있습니다.

WeChat 미니 프로그램이 3개나 오픈되었습니다. 하나는 QR코드를 생성하기 위한 인터페이스이고, 다른 하나는 해바라기 모양의 작은 프로그램 코드입니다. 여기서는 PHP를 사용하여 QR코드를 생성합니다.

먼저 Access_token을 받아야 합니다

이 요청도 매우 쉽습니다. WeChat 개발 문서에는 요청 인터페이스가 있습니다.
자신의 미니 프로그램의 APPID와 APPSECRET을 가져와야 합니다

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

access_token은 2시간 동안 유효하므로 가장 오랫동안 캐시해야 합니다. 음, 반복 요청을 피하기 위해

Build 요청 매개변수

PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다.

배열을 만든 다음 이를 json 데이터로 변환하고 변수에 할당할 수 있습니다.

$param = json_encode(array("path"=>"pages/index/index?id=123","width"=> 150));

그런 다음 QR 코드

전체 코드

 $_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;
  } 

?>

와 교환하여 POST 데이터가 WeChat 서버로 전송됩니다. 사용 방법:

1 새로운 qrcode.php를 만듭니다
2. . APPID 및 APPSECRET을 수정하세요
4. qrcode.php

를 방문하여 매개변수가 있는 작은 프로그램 QR 코드를 생성하세요

PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다.

이 인터페이스는 로고가 있는 작은 프로그램 QR 코드를 생성합니다.

작은 프로그램용으로 로고 없이 간단한 QR코드를 생성하고 싶은데 괜찮을까요?
공식적인 방법은 없지만 타사 인터페이스를 사용하여 일반 QR 코드를 생성할 수 있습니다.

LOGO 없이 QR 코드를 생성하는 단계

1. 먼저 생성된 미니 프로그램의 QR 코드를 디코딩하고 URL을 얻습니다

2. 일반 QR 코드 생성 인터페이스로 얻은 URL을 사용하여 일반 QR을 생성합니다. LOGO QR 코드가 없는 코드

1. Decoding

사실 여기에서는 타사 JSSDK 디코딩을 직접 사용합니다. 인터페이스와 appid, appkey

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

  
    <title>PHP生成微信小程序二维码</title>
    <meta>
    <meta>
    <script></script>
    <script></script>
    <script></script>
  
  
    <!--显示二维码-->
    <p></p>
    <p>
        <input>
        <br>
        <img  alt="PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다." >
    </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는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다." >&#39;);
                },function(e) {
                    console.error(e);
                });
            },
            function(e) {
                console.error(e);
            });
    });
    </script>
  
를 신청해야 합니다. 위는 js를 통해 구현된 디코딩입니다. 여전히 PHP에서 생성된 QR 코드의 이미지 주소를 호출합니다.

<?php  echo $base64_image;?>
위는 로컬 이미지를 호출하므로 이 디코딩 프로그램을 PHP 코드와 함께 사용해야 합니다. 미니프로그램의 QR코드를 생성합니다.

디코딩 후 로고 없이 QR 코드를 생성해야 합니다. 이를 위해서는 인터페이스만 호출하면 됩니다.

인터페이스: http://qr.liantu.com/api.php?...

그런 다음 디코딩된 URL을 연결하여 QR 코드를 생성할 수 있습니다.

PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다.

그러면 작은 프로그램 코드 생성과 로고 QR 코드 없이 코드 생성의 조합은 다음과 같습니다.

 $_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;
  } 

?>

生成小程序官方二维码

PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다."/>

生成无LOGO二维码

nbsp;html>        PHP生成微信小程序二维码               <script></script>     <script></script>     <script></script>           

    

                 
        PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다.     

    点击生成无LOGO二维码     <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;xxx&#39;;//改为您自己的 var api_key = &#39;xxx&#39;;//改为您自己的 (实际使用,建议在后台完成 signature 签名,以防暴露 api_key ,或定期更改) 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는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다." >&#39;); },function(e) { console.error(e); }); }, function(e) { console.error(e); }); }); </script>   
하지만 디코딩을 위해서는 두 개의 js 라이브러리가 필요합니다


위 내용은 이 글의 전체 내용입니다. 모두에게 도움이 됩니다. 학습에 도움이 됩니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 권장 사항:

php 전문가 공유: PHP 코드 작성 사양, 종합 요약

위 내용은 PHP는 매개변수를 사용하여 WeChat 애플릿용 QR 코드를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.