前段时间在项目中,写了一个生成微信二微码的功能,之所以会开发这个功能,是因为我们做的小程序要进行推广让用户扫我们做的小程序的二微码进行去体验,功能实现的场景大概是: 后台生成小程序二微码,返回到后台页面进行展示,然后在点击下载二微码图片,下载到本地进行保存,业务场景就是这样,好了现在我们来看看微信小程序生成二微码。
微信开发文档
首先我先看微信开发文档的API,和接口描述,其实微信开发很简单只要我们花时间去看文档的一些介绍和接口的规则和一些常见会放的错误,这样就可以很好完成所有的微信开发,主要是能看懂开发文档和会看文档
首先进入微信开发文档的框架这里 : https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html
这里是获取二微码的一些场景和一些注意事项大家仔细的去看一下,我这里只需要接口B的场景,生成个数不受限制,大家要根据自己的业务场景去选择相对的接口去实现,不要随意去调用接口,接口是有请求的限制的
看完规则我们就来看一下API接口描述:
https://developers.weixin.qq.com/miniprogram/dev/api/createWXAQRCode.html
这里是不受限制获取二微码的接口,看上面的图我们就能看出来,调用这个接口:
1.接口请求必须是POST请求方式
2.调用接口需要先获取到接口凭证,这就是说前面还需要在调用一个接口(接口凭证接口请看)
https://blog.csdn.net/qrn196789910/article/details/103161374
3.参数 scene 这个是调用接口参数,请看说明进行处理,我们这里是放入是景区id
4.参数page 这个是小程序的路径,就是生成二微码后用户扫描进入的首页是哪个页面的意思
返回值:
这里要注意了返回值如果是json数据格式就是错误的,如果是图片二进制的就是调用成功了,这样我们就用流的方式(字节流)把数据读到了我们的图片中然后在页面中展示进行下载就可以了
下面看代码:
Controller层:
/**
* 获取小程序码,适用于需要的码数量极多的业务场景
* @param spotid 这里是接口参数 scene (我这里是景区id)
* @param path 这里是接口参数 pages/index/index (主页的意思)
* @return
*/
@RequestMapping("/getw