TWechatPayConfigController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.szwl.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  7. import com.google.gson.Gson;
  8. import com.szwl.constant.JoinpayConstant;
  9. import com.szwl.constant.ResponseCodesEnum;
  10. import com.szwl.feign.bean.OrderFeign;
  11. import com.szwl.feign.bean.SzwlFeign;
  12. import com.szwl.model.bo.JsonMessage;
  13. import com.szwl.model.bo.R;
  14. import com.szwl.model.bo.ResponseModel;
  15. import com.szwl.model.entity.*;
  16. import com.szwl.model.utils.PushUtils;
  17. import com.szwl.service.*;
  18. import com.szwl.utils.HuifuUtils;
  19. import com.szwl.utils.IDGenerator;
  20. import com.szwl.weixin.util.HttpUtils;
  21. import com.wechat.pay.java.service.refund.model.AmountReq;
  22. import com.wechat.pay.java.service.refund.model.CreateRequest;
  23. import com.wechat.pay.java.service.refund.model.Refund;
  24. import io.swagger.annotations.ApiOperation;
  25. import lombok.extern.slf4j.Slf4j;
  26. import org.apache.commons.lang.StringUtils;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.web.bind.annotation.*;
  29. import javax.annotation.Resource;
  30. import javax.servlet.http.HttpServletRequest;
  31. import javax.servlet.http.HttpServletResponse;
  32. import java.math.BigDecimal;
  33. import java.math.RoundingMode;
  34. import java.text.ParseException;
  35. import java.text.SimpleDateFormat;
  36. import java.util.*;
  37. import static com.wechat.pay.java.service.refund.model.Status.PROCESSING;
  38. /**
  39. * <p>
  40. * 前端控制器
  41. * </p>
  42. *
  43. * @author wuhs
  44. * @since 2024-03-07
  45. */
  46. @Slf4j
  47. @RestController
  48. @RequestMapping("/wechatPay")
  49. public class TWechatPayConfigController {
  50. @Autowired
  51. SzwlFeign szwlFeign;
  52. @Autowired
  53. OrderFeign orderFeign;
  54. @Autowired
  55. TOrderService orderService;
  56. @Autowired
  57. TWechatPayConfigService wechatPayConfigService;
  58. @Resource
  59. TAlipayConfigService alipayConfigService;
  60. @Autowired
  61. TEquipmentService equipmentService;
  62. @Autowired
  63. TOrderDetailsService orderDetailsService;
  64. @ApiOperation(value = "购物车 请求在线支付 ")
  65. @PostMapping("/carsPay")
  66. public Object carsPay(String clientId, @RequestBody Map<String,String> productNameMap, String frpCode, HttpServletRequest request) {
  67. JsonMessage jsonMessage = wechatPayConfigService.carsPay(clientId, productNameMap, frpCode, request);
  68. return jsonMessage;
  69. }
  70. @ApiOperation("微信付款码支付")
  71. @PostMapping("/cardPay")
  72. @ResponseBody
  73. public Object cardPay(String authCode, String clientId, @RequestBody Map<String,String> productNameMap,HttpServletRequest request) {
  74. JsonMessage jsonMessage = wechatPayConfigService.cardPay(authCode, clientId, productNameMap, request);
  75. return jsonMessage;
  76. }
  77. @ApiOperation("处理支付宝支付成功回调的通知")
  78. @PostMapping("/alipayNotify")
  79. public String alipayNotify(@RequestParam Map<String, String> params) {
  80. log.info("支付宝支付回调通知:{}", params);
  81. String result = alipayConfigService.alipayNotify(params);
  82. return result;
  83. }
  84. @ApiOperation("处理微信支付成功回调的通知")
  85. @PostMapping(value = "/notify")
  86. @ResponseBody
  87. public Object notify(HttpServletRequest request) {
  88. String result = wechatPayConfigService.payNotify(request);
  89. return result;
  90. }
  91. @ApiOperation("发起退款")
  92. @PostMapping("/refund")
  93. public ResponseModel<?> refund(@RequestBody TOrder torder){
  94. ResponseModel result = wechatPayConfigService.refund(torder);
  95. return result;
  96. }
  97. @ApiOperation(value = "退款成功回调")
  98. @PostMapping("/refundNotify")
  99. public Object refundNotify(HttpServletRequest request, HttpServletResponse response){
  100. String result = wechatPayConfigService.refundNotify(request,response);
  101. return result;
  102. }
  103. }