生成二维码并实现微信的扫一扫功能

1:导入生成二维码的依赖

下载链接依赖示例

 <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
    <dependencies> 
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.barcode.free</artifactId>
            <version>2.6.2</version>
        </dependency>

2:测试

(1)这是二维码

        BarcodeSettings settings = new BarcodeSettings();//创建BarcodeSettings实例
        settings.setType(BarCodeType.QR_Code);//设置条码类型为QR二维码
        settings.setData("YC-01-1000-01");//设置二维码数据
        settings.setData2D("零件编号");//设置二维码显示数据
        settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);//设置数据类型
        settings.setX(1.0f);//设置二维码模型宽度
        settings.setQRCodeECL(QRCodeECL.H);//设置二维码纠错级别
        settings.setImageWidth(50);//设置生成的二维码图片宽度
        settings.setImageHeight(50);//设置生成的二维码图片高度
        settings.hasBorder(false);//设置二维码边框不可见

        BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//创建BarCodeGenerator实例
        BufferedImage bufferedImage = barCodeGenerator.generateImage();//根据settings生成图像数据,保存至BufferedImage实例
        ImageIO.write(bufferedImage, "png", new File("QRCode.png"));//保存二维码图片为PNG格式
        System.out.println("Complete!");

(2)这是条形码

        BarcodeSettings settings = new BarcodeSettings();//创建BarcodeSettings实例
        settings.setType(BarCodeType.Code_128);//指定条码类型
        settings.setData("http://www.baidu.com");//设置条码数据
        settings.setData2D("YC-01-1000-01");//设置条码显示数据
        settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);//设置数据类型
        settings.setShowTextOnBottom(true);//设置数据文本显示在条码底部
        settings.setX(0.8f);//设置黑白条宽度
        settings.setImageHeight(50);//设置生成的条码图片高度
        settings.setImageWidth(70);//设置生成的条码图片宽度
        settings.hasBorder(true);//设置边框可见
        settings.setBorderColor(new Color(135,206,250));//设置条码边框颜色
        settings.setBorderWidth(1);//设置条码边框宽度
        settings.setBackColor(new Color(240,255,255));//设置条码背景色

        BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//创建BarCodeGenerator实例
        BufferedImage bufferedImage = barCodeGenerator.generateImage();//根据settings生成图像数据,保存至BufferedImage实例
        ImageIO.write(bufferedImage, "png", new File("CODE128.png"));//保存条码为PNG图片
        System.out.println("Complete!");

3:在想要进行扫一扫的页面添加如下代码

?redirect_uri=这里是自己的后台api端口这个是扫描完成之后跳转的后台api接口,如果不设置就是会回到首页。当然也可以在获取到值之后,对返回数据进行操作,然后在script里面进行路径的跳转。

        <a href="http://sao315.com/w/api/saoyisao?redirect_uri=这里是自己的后台api端口">扫描</a>

4:获取返回值

(1)qr就是获取的返回值。

<script>
    var qr = GetQueryString("qrresult");
    if (qr) {
        alert(qr);
        alert(1);
        //$("#result").html(qr);
    }

    function GetQueryString(name) {
        var reg = new RegExp("\\b" + name + "=([^&]*)");
        var r = location.href.match(reg);
        if (r != null) return decodeURIComponent(r[1]);
    }
</script>

(2)location.href.split("qrresult=")[1]也可以获取返回值。通常为二维码的信息(一般是一个编号)

<script>
    if (location.href.indexOf("qrresult=") > -1) {
        alert(2);
        var id = location.href.split("qrresult=")[1];
        $.post("/ceshi/3",{
            id:id
        },function(res){
            if(res.code == 0){
                window.location.href = "/ceshi/5"
            }
        })
    }
    //在您的程序中可对此数据进行处理
    //alert(location.href.split("qrresult=")[1]);
</script>

到这里就结束。

原文链接历史记录找不到了,使用第三步第四步就可以实现扫一扫功能(提示:只能在微信上使用搜一搜打开)

任意门:https://gitee.com/Yjh0031/achievements

posted @ 2021-03-09 23:25  尹小宝W  阅读(383)  评论(1)    收藏  举报