首頁 後端開發 php教程 PHP產生微信二維碼實例

PHP產生微信二維碼實例

Mar 20, 2018 pm 02:15 PM
php 實例

透過後台介面可以取得小程式任意頁面的二維碼,掃描該二維碼可以直接進入小程式對應的頁面。官方推薦產生並使用小程式碼,它具有更好的辨識度。目前有3個介面可以產生小程式碼,開發者可以依照自己的需求選擇合適的介面。

介面A: 適用於需要的碼數量較少的業務場景介面位址:

1

https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

登入後複製

參數如下:

注意:透過此介面產生的小程式碼,永久有效,數量限制請參閱文末說明,請謹慎使用。使用者掃描該碼進入小程式後,將直接進入 path 對應的頁面。

介面B:適用於所需的碼數量極多,或僅暫時使用的業務場景:

1

https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

登入後複製

參數如下:

注意:透過此介面產生的小程式碼,永久有效,數量暫無限制。使用者掃描該碼進入小程式後,開發者需在對應頁面取得的碼中 scene 欄位的值,再做處理邏輯。使用以下程式碼可以取得到二維碼中的 scene 欄位的值。偵錯階段可以使用開發工具的條件編譯自訂參數scene=xxxx 進行模擬,開發工具模擬時的scene 的參數值需要進行urlencode

1

2

3

4

5

6

7

// 这是首页的 js

Page({

  onLoad: function(options) {

    // options 中的 scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene

    var scene = decodeURIComponent(options.scene)

  }

})

登入後複製


介面C:適用於需要的碼數量較少的業務場景:

1

https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

登入後複製

參數如下:

注意:透過此介面產生的小程式二維碼,永久有效,數量限制請參閱文末說明,請謹慎使用。使用者掃描該碼進入小程式後,將直接進入 path 對應的頁面。

這幾個介面POST 參數需要轉換成 json 字串,不支援 form 表單提交。介面A加上介面C,總共產生的碼數量限制為100,000,請謹慎呼叫。
這裡以介面B為例,講一下產生二維碼圖片並儲存本機伺服器:
1. 取得access_token
access_token 是全域唯一介面呼叫憑證,開發者呼叫各介面時都需使用access_token,需妥善保存。做過微信開發和公眾號開發,這都是最基本的,這裡獲取方法跟公眾號獲取access_token 一模一樣,方法見: 獲取微信基礎接口憑證Access_token

#2.生成二維碼

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

/**

 * 生成小程序二维码

 * @param  string $qr_path      存储路径,相对于程序根目录(例如:/Public/Qrcode/)

 * @param  string $filename     存储的图片名称(例如:aaa.png)

 * @param  string $scene        二维码场景值

 * @param  string $page         二维码跳转页面

 * @param  string $expires_in   二维码有效时间

 * @return [type]         [description]

 */

function create_qrcode($qr_path,$filename,$scene,$page='',$expires_in=7200){

     

    if(empty($qr_path)) return array('status'=>0,'info'=>'缺少存储路径');

    if(empty($filename)) return array('status'=>0,'info'=>'请确定存储的图片名称');

    if(empty($scene)) return array('status'=>0,'info'=>'缺少二维码场景值');

     

    if(!is_dir('.'.$qr_path)){                              //  ./Public/Qrcode/

        mkdir(iconv("GBK","UTF-8",'.'.$qr_path),0777,true);

    }

    $file = $qr_path.$filename;                             //   /Public/Qrcode/aaa.png

    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";

    $fileUrl = $protocol.$_SERVER['HTTP_HOST'].$file;       //   http://yourhost/Public/Qrcode/aaa.png

    $savePath = '.'.$file;                                  //   ./Public/Qrcode/aaa.png

    if(file_exists($savePath)){

        //当前时间-文件创建时间<过期时间

        if( (time()-filemtime($savePath)) < $expires_in ) return array(&#39;status&#39;=>1,&#39;info&#39;=>$fileUrl);

    }

     

    $accessToken = &#39;xxxxxxxxxxxxxxxxxxxxxx&#39;;                // 获取到的 access_token

    $url = &#39;https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=&#39;.$accessToken;

    $qrcode = array(

        &#39;scene&#39;         => $scene,

        &#39;width&#39;         => 200,

        &#39;page&#39;          => $page,

        &#39;auto_color&#39;    => true

    );

    $result = request($url,true,&#39;POST&#39;,json_encode($qrcode));

    $errcode = json_decode($result,true)[&#39;errcode&#39;];

    $errmsg = json_decode($result,true)[&#39;errmsg&#39;];

    if($errcode) return array(&#39;status&#39;=>0,&#39;info&#39;=>$errmsg);

    $res = file_put_contents($savePath,$result);            //  将获取到的二维码图片流保存成图片文件

 

    if($res===false) return array(&#39;status&#39;=>0,&#39;info&#39;=>&#39;生成二维码失败&#39;);

    return array(&#39;status&#39;=>1,&#39;info&#39;=>$fileUrl);           //返回本地图片地址

}

登入後複製

相關推薦:

nodejs超簡單產生二維碼方法

##JS將連結產生二維碼並轉為圖片的方法

JS產生二維碼#

以上是PHP產生微信二維碼實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

See all articles