SpringBoot生成二維碼的實現(xiàn)
效果圖
步驟
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; }
擴展
局域網(wǎng)調(diào)試
線上調(diào)試
切換ip# 指定IP(防止ip轉(zhuǎn)發(fā)獲取的是內(nèi)網(wǎng)ip) file.upload.ip=127.0.0.1
到此這篇關(guān)于SpringBoot生成二維碼的實現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot生成二維碼內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP基礎(chǔ)知識VBScript基本元素講解2. ajax請求添加自定義header參數(shù)代碼3. Gitlab CI-CD自動化部署SpringBoot項目的方法步驟4. Kotlin + Flow 實現(xiàn)Android 應(yīng)用初始化任務(wù)啟動庫5. Python requests庫參數(shù)提交的注意事項總結(jié)6. 基于javascript處理二進制圖片流過程詳解7. 解決android studio引用遠程倉庫下載慢(JCenter下載慢)8. asp知識整理筆記4(問答模式)9. axios和ajax的區(qū)別點總結(jié)10. 詳談ajax返回數(shù)據(jù)成功 卻進入error的方法
