OrderPayController.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.izouma.nineth.web;
  2. import com.github.binarywang.wxpay.exception.WxPayException;
  3. import com.izouma.nineth.service.OrderService;
  4. import lombok.AllArgsConstructor;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.apache.commons.codec.EncoderException;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.ui.Model;
  9. import org.springframework.web.bind.annotation.*;
  10. import java.util.regex.Pattern;
  11. @Controller
  12. @RequestMapping("/payOrder")
  13. @Slf4j
  14. @AllArgsConstructor
  15. public class OrderPayController {
  16. private final OrderService orderService;
  17. @RequestMapping(value = "/alipay", method = RequestMethod.GET)
  18. public String payOrderAlipay(Long id, Model model, @RequestHeader(value = "User-Agent") String userAgent) {
  19. boolean weixin = Pattern.matches(".*(micromessenger).*", userAgent.toLowerCase());
  20. boolean ios = Pattern.matches(".*(ipad|iphone).*", userAgent.toLowerCase());
  21. boolean android = Pattern.matches(".*(android).*", userAgent.toLowerCase());
  22. model.addAttribute("weixin", weixin);
  23. model.addAttribute("ios", ios);
  24. model.addAttribute("android", android);
  25. orderService.payOrderAlipay(id, model);
  26. return "AlipayHtml";
  27. }
  28. @RequestMapping(value = "/weixin_h5")
  29. public String payOrderWeixinH5(Long id, Model model, @RequestHeader(value = "User-Agent") String userAgent) throws EncoderException, WxPayException {
  30. boolean weixin = Pattern.matches(".*(micromessenger).*", userAgent.toLowerCase());
  31. boolean ios = Pattern.matches(".*(ipad|iphone).*", userAgent.toLowerCase());
  32. boolean android = Pattern.matches(".*(android).*", userAgent.toLowerCase());
  33. model.addAttribute("weixin", weixin);
  34. model.addAttribute("ios", ios);
  35. model.addAttribute("android", android);
  36. model.addAttribute("payUrl", orderService.payOrderWeixinH5(id));
  37. return "WeixinPayHtml";
  38. }
  39. @RequestMapping(value = "/weixin")
  40. @ResponseBody
  41. public Object payOrderWeixin(@RequestParam Long id, @RequestParam String openId) throws WxPayException {
  42. return orderService.payOrderWeixin(id, openId);
  43. }
  44. }