二维码接口
This commit is contained in:
11
pom.xml
11
pom.xml
@ -239,6 +239,17 @@
|
|||||||
<artifactId>alipay-sdk-java</artifactId>
|
<artifactId>alipay-sdk-java</artifactId>
|
||||||
<version>4.40.427.ALL</version>
|
<version>4.40.427.ALL</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.zxing</groupId>
|
||||||
|
<artifactId>core</artifactId>
|
||||||
|
<version>3.4.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.zxing</groupId>
|
||||||
|
<artifactId>javase</artifactId>
|
||||||
|
<version>3.4.1</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<!-- Build Configuration -->
|
<!-- Build Configuration -->
|
||||||
|
|||||||
56
src/main/java/com/sczx/user/controller/QrCodeController.java
Normal file
56
src/main/java/com/sczx/user/controller/QrCodeController.java
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
package com.sczx.user.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.google.zxing.BarcodeFormat;
|
||||||
|
import com.google.zxing.EncodeHintType;
|
||||||
|
import com.google.zxing.WriterException;
|
||||||
|
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
||||||
|
import com.google.zxing.common.BitMatrix;
|
||||||
|
import com.google.zxing.qrcode.QRCodeWriter;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Base64;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import com.sczx.user.common.Result;
|
||||||
|
/**
|
||||||
|
* 二维码生成控制器
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/qrcode")
|
||||||
|
public class QrCodeController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成二维码并返回Base64编码
|
||||||
|
*
|
||||||
|
* @return 包含Base64编码的二维码图片
|
||||||
|
*/
|
||||||
|
@PostMapping("/generateOrderCarChangeBase64")
|
||||||
|
public Result<String> generateOrderCarChangeQrCodeBase64(@RequestParam(value = "qrCodeStr", required = true) String qrCodeStr) {
|
||||||
|
try {
|
||||||
|
|
||||||
|
// 设置二维码参数
|
||||||
|
Map<EncodeHintType, Object> hints = new HashMap<>();
|
||||||
|
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
|
||||||
|
hints.put(EncodeHintType.MARGIN, 1);
|
||||||
|
|
||||||
|
// 生成二维码
|
||||||
|
QRCodeWriter qrCodeWriter = new QRCodeWriter();
|
||||||
|
BitMatrix bitMatrix = qrCodeWriter.encode(qrCodeStr.toString(), BarcodeFormat.QR_CODE, 300, 300, hints);
|
||||||
|
|
||||||
|
// 将二维码转换为Base64编码
|
||||||
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||||
|
MatrixToImageWriter.writeToStream(bitMatrix, "PNG", outputStream);
|
||||||
|
byte[] qrCodeBytes = outputStream.toByteArray();
|
||||||
|
String base64Image = Base64.getEncoder().encodeToString(qrCodeBytes);
|
||||||
|
|
||||||
|
// 返回Base64编码的图片数据
|
||||||
|
return Result.ok(base64Image);
|
||||||
|
} catch (WriterException | IOException e) {
|
||||||
|
return Result.fail("99999","二维码生成失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user