幾行代碼,輕松帶你實(shí)現(xiàn)Java生成二維碼功能!
作者:瑞 新
https://0x9.me/rVjw2
文章目錄
效果圖 步驟 maven依賴 工具類 service 擴(kuò)展 局域網(wǎng)調(diào)試 線上調(diào)試
效果圖
步驟
maven依賴
<dependency>
??<groupId>com.google.zxinggroupId>
??<artifactId>javaseartifactId>
??<version>3.3.0version>
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
???/**
?????*?生成二維碼
?????*?圖片可解析出訪問(wèn)的支付對(duì)應(yīng)訂單號(hào)的支付連接
?????*?@param?orderNo?訂單號(hào)
?????*?@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評(píng)論
圖片
表情
