生成二维码并实现微信的扫一扫功能
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>

浙公网安备 33010602011771号