作者:曾经沧海难为水文杰59552066 | 来源:互联网 | 2023-05-17 17:07
<dependency>
<groupId>com.google.zxinggroupId>
<artifactId>javaseartifactId>
<version>3.4.1version>
dependency>
<dependency>
<groupId>com.google.zxinggroupId>
<artifactId>coreartifactId>
<version>3.4.1version>
dependency>
控制器
package com.ybchen.controller;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.ybchen.dto.VideoOrderDto;
import com.ybchen.service.VideoOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
/**
* @Description:视频-订单控制器
* @Author:chenyanbin
* @Date:2021/3/12 下午5:08
* @Versiion:1.0
*/
@RestController
//@RequestMapping("/user/api/v1")
@RequestMapping("/api/v1/order")
public class OrderController {
@Autowired
private VideoOrderService videoOrderService;
/**
* 下单
*
* @param videoId
* @param request
* @return
*/
@GetMapping("add")
public void saveOrder(
@RequestParam(value = "video_id", required = true) int videoId,
HttpServletRequest request,
HttpServletResponse response
) throws Exception {
//获取用户ip
// String ip = IpUtils.getIpAddr(request);
String ip = "127.0.0.1";
//用户id
// int userId = (Integer) request.getAttribute("user_id");
int userId = 1;
VideoOrderDto videoOrderDto = new VideoOrderDto();
videoOrderDto.setUserId(userId);
videoOrderDto.setVideoId(videoId);
videoOrderDto.setIp(ip);
String codeUrl = videoOrderService.save(videoOrderDto);
System.out.println("codeUrl");
System.out.println(codeUrl);
if (codeUrl == null) {
throw new NullPointerException();
}
try {
//生成二维码
//参考链接:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5&index=3
Map hints = new HashMap<>();
//生成纠错等级
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
//设置编码
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
//构造图片对象,第一个参数:二维码内容;第二个参数:二维码格式;第三个参数:宽;第四个参数:高;第五个参数:配置信息
BitMatrix bitMatrix = new MultiFormatWriter().encode(
"chenyanbin",
BarcodeFormat.QR_CODE,
400,
400,
hints
);
//拿到输出流
ServletOutputStream outputStream = response.getOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "png", outputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
}
演示