首页 后端开发 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