幾行代碼,輕松帶你實(shí)現(xiàn)Java生成二維碼功能!
作者:佚名
本文介紹了幾行代碼就可以輕松帶你實(shí)現(xiàn)Java生成二維碼功能,一起來看看吧。
文章目錄
- 效果圖
- 步驟
- maven依賴
- 工具類
- service
- 擴(kuò)展
- 局域網(wǎng)調(diào)試
- 線上調(diào)試
效果圖
步驟
maven依賴
- <!--生成二維碼-->
- <dependency>
- <groupId>com.google.zxing</groupId>
- <artifactId>javase</artifactId>
- <version>3.3.0</version>
- </dependency>
工具類
- package com.bennyrhys.mall.util;
- import com.google.zxing.BarcodeFormat;
- 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 java.io.IOException;
- import java.nio.file.FileSystems;
- import java.nio.file.Path;
- /**
- * 描述: 生成二維碼工具
- */
- public class QRCodeGenerator {
- public static void generateQRCodeImage(String text, int width, int height, String filePath)
- throws WriterException, IOException {
- QRCodeWriter qrCodeWriter = new QRCodeWriter();
- BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
- Path path = FileSystems.getDefault().getPath(filePath);
- MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
- }
- public static void main(String[] args) {
- try {
- generateQRCodeImage("Hello World", 350, 350, "E:/JAVA/mall/src/main/resources/images/QRTest.png");
- } catch (WriterException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
service
- /**
- * 生成二維碼
- * 圖片可解析出訪問的支付對應(yīng)訂單號的支付連接
- * @param orderNo 訂單號
- * @return 返回圖片地址
- */
- @Override
- public String qrcode(String orderNo) {
- ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
- HttpServletRequest request = attributes.getRequest();
- String address = ip + ":" + request.getLocalPort();
- String payUrl = "http://" + address + "/pay?orderNo=" + orderNo;
- try {
- QRCodeGenerator.generateQRCodeImage(payUrl, 350, 350, Constant.FILE_UPLOAD_PATH + orderNo + ".png");
- } catch (WriterException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- String pngAddress = "http://" + address + "/images-dev/" + orderNo + ".png";
- return pngAddress;
- }
擴(kuò)展
局域網(wǎng)調(diào)試
線上調(diào)試
切換ip
- # 指定IP(防止ip轉(zhuǎn)發(fā)獲取的是內(nèi)網(wǎng)ip)
- file.upload.ip=127.0.0.1
責(zé)任編輯:龐桂玉
來源:
Java知音