最近业务给咱们开发同事提了一个很简单的需求- 生成小程序码 ,同事可能是平时写CRUD写多了,听到是不熟悉的领域的东西就觉得有些头大,便来问我如何实现,我说:“这个得看官方说明文档了,然后调接口实现。如果觉得麻烦就找开源组件直接引用即可,比如 WxJava ”。可能是我表述得不够清楚,同事依然一脸懵逼,感觉甚是复杂。
接下来,我们就整合开源组件 WxJava 的 miniapp 版本来快速实现小程序码生成功能。
引入wx-java-miniapp-spring-boot-starter
| |
配置小程序信息
| |
如果只是生成 小程序码 或者获取 小程序连接 ,那便只配置 appId 和 secret 即可。
调用API
小程序官方有三种小程序码的生成方式, WxJava 封装了官方的API接口为我们提供三个API的方法:
- createQrcode 对应官方的 获取小程序二维码 接口,生成的小程序码,永久有效,有数量限制,参数带在URL后面
- createWxaCode 对应官方的 获取小程序码 接口,生成的小程序码,永久有效,有数量限制,参数带在URL后面
- createWxaCodeUnlimit 对应官方的 获取不限制的小程序码 接口,生成的小程序码,永久有效,数量暂无限制,参数需要传到 scene 中,小程序端需要从 query.scene 中获取
@Resource
WxMaService wxMaService;
@GetMapping(value = “/generateQrcode/{id}”, produces = {MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE})
public byte [] generateQrcode(HttpServlet request request,@PathVariable(“id”)String id) throws WxError Exception {
return wxMaService.getQrcodeService().createWxaCodeBytes(“路径?id=”+id,””,640,true,null,false);
}

这里我只是简单的模拟API的调用方式,如果使用有数量限制的API接口,我们需要将生成好的图片上传到文件服务器,或者是保存下来。因为资源有限,我们得节约一点。
| |
默认图片大小为 430 像素,颜色自动调整,可以通过 WxMaCodeLineColor 对象来设置生成的颜色,
| |
这里需要注意的是,要生成的小程序必须是已发版,如果是调用的 createWxaCodeUnlimit 方法,路径也必须在正式存在,否则会提示异常
| |
如今,开源的组件越来越多,其可帮助我们提升开发效率,但是我们也不能过渡依赖于这些组件,完成工作交差之后就停滞不前,在使用它们的同时也需要多去学习、思考。