首頁  >  文章  >  後端開發  >  PHP產生帶有參數的微信小程式的二維碼

PHP產生帶有參數的微信小程式的二維碼

不言
不言原創
2018-07-14 10:32:338166瀏覽

這篇文章主要介紹了關於PHP生成帶參數的微信小程式的二維碼,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

微信小程式官方開放了3個創建二維碼的接口,其中有一個是生成二維碼的,還有一個是葵花狀的小程式碼,我在這裡就用php生成二維碼。

首先要取得Access_token

這個請求起來也是很容易的,微信開發文件有請求介面:
要把自己的小程式的APPID和APPSECRET取得到

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

access_token只有2小時有效期,所以要快取最好,避免重複請求

#建置請求參數

PHP產生帶有參數的微信小程式的二維碼

##可以建立一個數組,然後轉成json資料賦給一個變數

$param = json_encode(array("path"=>"pages/index/index?id=123","width"=> 150));
然後POST資料傳送到微信伺服器換取二維碼

完整程式碼

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

?>

使用方法:

#1、新新qrcode.php

2、拷貝上面程式碼進去
3、修改APPID和APPSECRET
4、存取qrcode.php

即可產生一個帶參數的小程式二維碼

PHP產生帶有參數的微信小程式的二維碼

但是這個介面產生的是有LOGO的小程式二維碼。

我們想要產生一個簡簡單單的,無LOGO的小程式二維碼可以嗎?
官方的是沒有辦法的,但是我們可以用第三方的介面產生普通的二維碼的方式。

產生無LOGO二維碼步驟

1、先解碼,把剛才產生的小程式二維碼解碼,獲得URL

2、把獲得的URL用普通的二維碼生成介面生成普通的無LOGO的二維碼

1、解碼

解碼其實有很多的庫我這裡直接用了第三方的JSSDK解碼,免費的,需要申請介面和appid和appkey

生成无LOGO二维码

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

    

                 
        PHP產生帶有參數的微信小程式的二維碼     

    点击生成无LOGO二维码        
上面是透過js來實現的解碼,解碼還是呼叫了php產生的二維碼的一個圖片位址的

上面是呼叫本地圖片,所以需要結合php產生小程式二維碼的程式碼使用這個解碼程式。

解碼後需要產生無LOGO的二維碼,這個我只需要呼叫一個介面就行。

介面:http://qr.liantu.com/api.php?...

然後拼接解碼後的url就可以產生一個二維碼了。

PHP產生帶有參數的微信小程式的二維碼

那麼產生小程式碼和產生無LOGO二維碼的程式碼結合起來就是:

 $_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產生帶有參數的微信小程式的二維碼"/>

生成无LOGO二维码

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

    

                 
        PHP產生帶有參數的微信小程式的二維碼     

    点击生成无LOGO二维码        
但是解碼需要用到的兩個js庫


以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

php大牛分享:php程式碼寫的規範,總結的很全

以上是PHP產生帶有參數的微信小程式的二維碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn