zoukankan      html  css  js  c++  java
  • 实现Java生成二维码功能

    java实现二维码

    参考:https://mp.weixin.qq.com/s/RzaU32wbWXk66wfJcN8YvA

    文章目录

    • 效果图
    • 步骤
      • maven依赖
      • 工具类
      • service
    • 扩展
      • 局域网调试
      • 线上调试

    效果图

    步骤

    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

     /**
         * 生成二维码
         * 图片可解析出访问的支付对应订单号的支付连接
         * @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;
        }

    扩展

    线上调试

    切换ip

    # 指定IP(防止ip转发获取的是内网ip) 
    file.upload.ip=127.0.0.1
  • 相关阅读:
    Centos下安装FastDFS
    elasticsearch5.6.8安装和配置
    maven利用插件发布项目到tomcat
    vue-cli安装以及mongodb原生操作
    J2EE基础
    Debian Gun/linux基本用法
    SpringCloud 中如何使微服务只能被指定的程序调用
    CentOS 使用Docker 部署多台Springboot程序,并用Nginx做负载均衡
    CentOS上没有ifcofig命令
    CentOS yum安装时报错 yum install cannot find a vaild baseur
  • 原文地址:https://www.cnblogs.com/konglxblog/p/15240554.html
Copyright © 2011-2022 走看看