OrderPayControllerV2.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.izouma.nineth.web;
  2. import com.alibaba.fastjson.JSON;
  3. import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
  4. import com.github.binarywang.wxpay.constant.WxPayConstants;
  5. import com.github.binarywang.wxpay.exception.WxPayException;
  6. import com.huifu.adapay.core.exception.BaseAdaPayException;
  7. import com.izouma.nineth.domain.Order;
  8. import com.izouma.nineth.enums.OrderStatus;
  9. import com.izouma.nineth.exception.BusinessException;
  10. import com.izouma.nineth.repo.OrderRepo;
  11. import com.izouma.nineth.service.*;
  12. import com.izouma.nineth.utils.SecurityUtils;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.AllArgsConstructor;
  15. import lombok.extern.slf4j.Slf4j;
  16. import me.chanjar.weixin.common.error.WxErrorException;
  17. import me.chanjar.weixin.mp.api.WxMpService;
  18. import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
  19. import me.chanjar.weixin.mp.bean.result.WxMpUser;
  20. import org.apache.commons.codec.EncoderException;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.ui.Model;
  23. import org.springframework.web.bind.annotation.*;
  24. import java.math.BigDecimal;
  25. import java.util.regex.Pattern;
  26. @Controller
  27. @RequestMapping("/payOrder/v2")
  28. @Slf4j
  29. @AllArgsConstructor
  30. public class OrderPayControllerV2 {
  31. private final OrderRepo orderRepo;
  32. private final SandPayService sandPayService;
  33. private final OrderPayService orderPayService;
  34. @RequestMapping(value = "/alipay", method = RequestMethod.GET)
  35. @ResponseBody
  36. public String payOrderAlipayH5(Long id) {
  37. return orderPayService.payOrder(id);
  38. }
  39. @RequestMapping(value = "/alipay_wx", method = RequestMethod.GET)
  40. public String payOrderAlipayWx(Long id, Model model) {
  41. Order order = orderRepo.findById(id).orElseThrow(new BusinessException("订单不存在"));
  42. if (order.getStatus() != OrderStatus.NOT_PAID) {
  43. return "redirect:/9th/store";
  44. }
  45. String payUrl = orderPayService.payOrder(id);
  46. model.addAttribute("payUrl", payUrl);
  47. model.addAttribute("orderId", id);
  48. return "AlipayHtml";
  49. }
  50. @RequestMapping(value = "/balance", method = RequestMethod.GET)
  51. @ResponseBody
  52. public void payOrderBalance(@RequestParam Long id, @RequestParam String tradeCode) {
  53. orderPayService.payOrderBalance(id, SecurityUtils.getAuthenticatedUser().getId(), tradeCode);
  54. }
  55. @ApiOperation("衫德h5快捷")
  56. @RequestMapping(value = "/sandQuick", method = RequestMethod.GET, produces = "text/html")
  57. @ResponseBody
  58. public String sandQuick(@RequestParam Long id) {
  59. return sandPayService.payOrderQuick(id);
  60. }
  61. @RequestMapping(value = "/gift/alipay", method = RequestMethod.GET)
  62. @ResponseBody
  63. public String payGiftOrderAlipayH5(Long id) {
  64. return orderPayService.payGiftOrder(id);
  65. }
  66. @RequestMapping(value = "/gift/alipay_wx", method = RequestMethod.GET)
  67. public String payGiftOrderAlipayWx(Long id, Model model) {
  68. String payUrl = orderPayService.payGiftOrder(id);
  69. model.addAttribute("payUrl", payUrl);
  70. model.addAttribute("orderId", id);
  71. return "AlipayHtml";
  72. }
  73. @RequestMapping(value = "/gift/balance", method = RequestMethod.GET)
  74. public void payGiftOrderBalance(@RequestParam Long id, @RequestParam String tradeCode) {
  75. orderPayService.payGiftBalance(id, SecurityUtils.getAuthenticatedUser().getId(), tradeCode);
  76. }
  77. @RequestMapping(value = "/gift/sandQuick", method = RequestMethod.GET, produces = "text/html")
  78. @ResponseBody
  79. public String payGiftQuick(@RequestParam Long id) {
  80. return sandPayService.payGiftQuick(id);
  81. }
  82. @RequestMapping(value = "/mint/alipay", method = RequestMethod.GET)
  83. @ResponseBody
  84. public String payMintOrderAlipayH5(Long id) {
  85. return orderPayService.payMintOrder(id);
  86. }
  87. @RequestMapping(value = "/mint/alipay_wx", method = RequestMethod.GET)
  88. public String payMintOrderAlipayWx(Long id, Model model) {
  89. String payUrl = orderPayService.payMintOrder(id);
  90. model.addAttribute("payUrl", payUrl);
  91. model.addAttribute("orderId", id);
  92. return "AlipayHtml2";
  93. }
  94. @RequestMapping(value = "/mint/sandQuick", method = RequestMethod.GET, produces = "text/html")
  95. @ResponseBody
  96. public String payMintQuick(@RequestParam Long id) {
  97. return sandPayService.payMintQuick(id);
  98. }
  99. @RequestMapping(value = "mint/balance", method = RequestMethod.GET)
  100. public void payMintOrderBalance(@RequestParam Long id, @RequestParam String tradeCode) {
  101. orderPayService.payMintOrderBalance(id, SecurityUtils.getAuthenticatedUser().getId(), tradeCode);
  102. }
  103. @RequestMapping("/recharge")
  104. public String recharge(@RequestParam BigDecimal amount) {
  105. return orderPayService.recharge(SecurityUtils.getAuthenticatedUser().getId(), amount);
  106. }
  107. }