1.加入依赖
<!-- google二维码生成包 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>2.0</version> </dependency>
2.生成二维码
@RestController //@RequestMapping("/user/api/v1/order") @RequestMapping("/api/v1/order") public class OrderController { @Autowired private VideoOrderService videoOrderService; @GetMapping("add") public void saveOrder(@RequestParam(value = "video_id",required = true)int videoId, HttpServletRequest request, HttpServletResponse response) throws Exception { //String ip = IpUtils.getIpAddr(request); //int userId = request.getAttribute("user_id"); int userId = 1; //临时写死的配置 String ip = "120.25.1.43"; VideoOrderDto videoOrderDto = new VideoOrderDto(); videoOrderDto.setUserId(userId); videoOrderDto.setVideoId(videoId); videoOrderDto.setIp(ip); String codeUrl = videoOrderService.save(videoOrderDto); if(codeUrl == null) { throw new NullPointerException(); } try{ //生成二维码配置 Map<EncodeHintType,Object> hints = new HashMap<>(); //设置纠错等级 hints.put(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.L); //编码类型 hints.put(EncodeHintType.CHARACTER_SET,"UTF-8"); //构造一个图形 BitMatrix bitMatrix = new MultiFormatWriter().encode(codeUrl,BarcodeFormat.QR_CODE,400,400,hints); OutputStream out = response.getOutputStream(); //通过流写出 MatrixToImageWriter.writeToStream(bitMatrix,"png",out); }catch (Exception e){ e.printStackTrace(); } } }