简介
在微信小程序里并没有内置的API用于生成自定义的二维码。同时wx.request所请求的地址只能是你所绑定的域名。所以就需要我们自己去创建一个生成二维码的方法。
我是用的php扩展的phpqrcode方法来解决的这个问题。由于,我并没有已备案的域名。所以,服务器我就使用的是新浪SAE。新浪SAE可以提供给你一个已备案的二级域名。同时最便宜的新浪SAE,并没有存储空间。
所以,你并不能将生产的二维码图片存储在服务器。然后,返回 给 image的src属性一个图片的访问链接。所以,只能将生成的二维码图片转化成arraybuffer然后返回给客户端。然客户端去解码arraybuffer并呈现出来。
phpqrcode扩展下载:
百度云链接:https://pan.baidu.com/s/1aWFJ9TYz5DyakVnizYuDEA
提取码:m27m
官方下载:https://sourceforge.net/projects/phpqrcode/
客户端代码
btn_qrcode: function(){
var that = this
wx.request({
url: 'https://test.php', //仅为示例,并非真实的接口地址
responseType:"arraybuffer",
success(res) {
console.log('返回的:',res.data)
//绑定至image标签
that.setData({ src_a: "data:image/png;base64,"+wx.arrayBufferToBase64(res.data) })
}
})
},
服务端代码:
<?php
include('phpqrcode.php');
QRcode::png('测试',false,'H','3','3',false);