本文主要对微信小程序和图片的引用工具进行了封装,内容中也结合了许多网上资源,整合一下方便开发者应用。
项目应用工具:Java8 IDEA Gradle5.2.1
获取小程序的文档首先我们要阅读微信的官方文档,然后针对文档的内容编写代码。
生成小程序码地址(同步时间2020-7-15日 后续微信如果更新请自行官网查询):
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html
第一步:
第二步:选择适用的场景,本文选择接口A 进行说明。(其他选择大同小异 需要开发者仔细阅读)
第三步: 根据要求文档分为两个步骤: 第一个步骤获取微信小程序accessToken,第二步根据accessToken和其他参数获取小程序码。获取微信小程序accessToken代码如下:
//微信获取授权请求地址
private final String wechatGetTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?";
//appId
private final String appId = "";
//secret
private final String secret = "";
//微信获取二维码授权请求地址
private final String wechatGetAppletCodenUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN";
//前端页面地址
private final String frontEndUrl = "/image/";
//常规字体
private static final String FONT_FILE = "/PingFang.ttf";
/**
* @className AppletPosterImplServiceImpl
* @date 2020/7/13 15:39
* @author Leo
* @desc 获取token
* @Url 微信文档连接: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html
*/
@Override
public WechatGetAccessTokenDTO getAccessToken() {
return getSmallProgramAccessToken();
}
/**
* @className AppletPosterImplServiceImpl
* @date 2020/7/13 15:45
* @author Leo
* @desc 拆分共用 HttpUtil.sendGet工具和JsonUtils.jsonToBean工具后续补充
*/
public WechatGetAccessTokenDTO getSmallProgramAccessToken() {
//返回参数封装
WechatGetAccessTokenDTO wechatGetAccessTokenDTO = new WechatGetAccessTokenDTO();
//请求参数拼接
String params = "grant_type=client_credential&appid=" + appId + "&secret=" + secret;
try {
//返回值
String data = HttpUtil.sendGet(wechatGetTokenUrl, params);
wechatGetAccessTokenDTO = JsonUtils.jsonToBean(data, WechatGetAccessTokenDTO.class);
} catch (Exception e) {
// log.error(String.valueOf(e));
}
return wechatGetAccessTokenDTO;
}
第四步: 获取微信小程序码代码如下: (注:由于代码过于多已经封装成demo在下方链接)
/**
* @className AppletPosterImplServiceImpl
* @date 2020/7/14 11:24
* @author Leo
* @desc 获取小程序码
* @Url 微信文档连接 : https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.html
*/
@Override
public InputStream getAppletCode() {
//获取token
WechatGetAccessTokenDTO wechatGetAccessTokenDTO = getSmallProgramAccessToken();
if (Objects.isNull(wechatGetAccessTokenDTO)) {
new Exception("未获取信息");
}
//获取二维码流文件 (这里可以根据流进行保存这个二维码 保存本地 工具类里面有方法)
return HttpUtil.getWechatQrCode(
wechatGetAppletCodenUrl, //请求的微信地址
"", //获取的token
frontEndUrl, //生成小程序码所要展示前端的地方 (也就是你二维码所要跳转的前端目录 可以拼接参数)
"280"); //不是必须,需要的宽度,默认430x430,最小280最大1280
}
第五步:对图片进行封装测试
本文主要实现了三个方法方法如下:
系统应用所要注意的地方:
1.需要配置相关应用参数
2.尽可能的不要将图片放大或缩小容易图片失帧
3.问题发生在Window 和 Mac /Linux 上,在使用文本
Font font = FontUtil.getFont(FONT_FILE, Font.BOLD, 10);
font字体需要根据系统的资源查看是否存在这个字体,在开发或者调试的时候就可能不存在这些字体,导致使用的是默认字体。导致不同系统产生的效果不一样,本文是将字体导入到项目的做法,也可以在服务器中添加进去。
应用demo系统讲解:
项目地址下载:(如果没有积分可随时在博客上沟通,每周一和周五看到会统一回复,并发送) 有不足的地方还请谅解!!!
下载地址:https://download.csdn.net/download/qq_27535933/12618319