请求地址
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
注意: 图片最小分辨率:280 最大:1280
可引用此maven,对小程序进行了整合
<!-- 微信小程序 -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>wx-java-miniapp-spring-boot-starter</artifactId>
<version>3.7.0</version>
</dependency>
生成二维码
// 设置小程序二维码线条颜色为黑色
WxMaCodeLineColor lineColor = new WxMaCodeLineColor("0", "0", "0");
//生成二维码
File wxFile = wxMaService.getQrcodeService().createWxaCodeUnlimit(scene, path, 280, false, lineColor, false);
scene:参数 (String scene = “userInfoId=111”)
path:跳转路径
280:二维码宽度
二维码与背景图整合
public class GenerateImageUtil {
private GenerateImageUtil() {
}
/**
*
* @author X-MD
* @date 2021/4/5 0005
* @param url 背景图链接
* @param wxCodeFile 二维码文件
* @param qiniu 七牛云配置信息
* @return
**/
public static String generateImage(String url, File wxCodeFile, NacosConfig.Qiniu qiniu) {
try {
//背景图片
BufferedImage bg = ImageIO.read(new URL(url));
//背景图片的高
int height = bg.getHeight();
//背景图片的宽
int width = bg.getWidth();
//读取二维码图片
BufferedImage qcCode = ImageIO.read(wxCodeFile);
//创建画布
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//生成画笔 开启画图
Graphics g = img.getGraphics();
// 绘制背景图片
g.drawImage(bg.getScaledInstance(width, height, Image.SCALE_DEFAULT), 0, 0, null);
//绘制二维码图片 width 160 , height 160
Image scaledInstance = qcCode.getScaledInstance(160, 160, Image.SCALE_DEFAULT);
//二维码插入位置,从左到右 560像素 ,从上到下 1100像素
g.drawImage(scaledInstance, 560, 1100, null);
//关掉画笔
g.dispose();
// 输出图片
ByteArrayOutputStream bs = new ByteArrayOutputStream();
//文件输出格式 png
ImageIO.write(img, "png", bs);
InputStream is = new ByteArrayInputStream(bs.toByteArray());
return uploadPhoto(is,qiniu);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 文件上传到七牛云
* @author X-MD
* @date 2021/4/5 0005
* @param
* @return
**/
private static String uploadPhoto(InputStream inputStream,NacosConfig.Qiniu qiniu) {
Configuration cfg = new Configuration(Region.region0());
UploadManager uploadManager = new UploadManager(cfg);
String bucket = "bmlg_img";
Auth auth = Auth.create(qiniu.getAccesskey(), qiniu.getSecretkey());
String token = auth.uploadToken(bucket);
String key = IdUtil.simpleUUID();
try {
Response response = uploadManager.put(inputStream, key, token, null, null);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
return "https://image.baimofriend.com/" + putRet.key;
} catch (QiniuException ex) {
ex.printStackTrace();
}
return null;
}