PayController.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.zanxiang.sdk.controller;
  2. import com.zanxiang.common.domain.ResultMap;
  3. import com.zanxiang.common.domain.ResultVO;
  4. import com.zanxiang.common.enums.PayWayEnum;
  5. import com.zanxiang.module.util.JsonUtil;
  6. import com.zanxiang.sdk.annotation.UnSignCheck;
  7. import com.zanxiang.sdk.annotation.ValidLogin;
  8. import com.zanxiang.sdk.domain.params.ProductPayParam;
  9. import com.zanxiang.sdk.domain.params.UserData;
  10. import com.zanxiang.sdk.domain.vo.PayParamVO;
  11. import com.zanxiang.sdk.service.OrderPayService;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.validation.annotation.Validated;
  16. import org.springframework.web.bind.annotation.*;
  17. import javax.annotation.Resource;
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.io.IOException;
  21. /**
  22. * 支付公共入口
  23. *
  24. * @author xufeng
  25. * @date 2022/6/8 14:49
  26. */
  27. @Api(tags = "支付公共入口")
  28. @RestController
  29. @RequestMapping(value = "/api/pay")
  30. @Slf4j
  31. public class PayController {
  32. @Resource
  33. private OrderPayService orderPayService;
  34. @UnSignCheck
  35. @ApiOperation(value = "获取小程序/客服支付参数")
  36. @GetMapping(value = "/param/applet")
  37. public ResultVO<PayParamVO> getPayParam(@RequestParam String code, @RequestParam Long orderId, HttpServletRequest request) {
  38. return ResultVO.ok(orderPayService.getPayParam(code, orderId, request));
  39. }
  40. @ApiOperation(value = "获取小游戏支付方式")
  41. @GetMapping(value = "/device/applet")
  42. public ResultVO<Integer> getAppletPayDevice(@ValidLogin UserData userData) {
  43. return ResultVO.ok(orderPayService.getAppletPayDevice(userData));
  44. }
  45. @ApiOperation(value = "支付参数生成")
  46. @PostMapping(value = "/create")
  47. public ResultMap create(@Validated @RequestBody ProductPayParam product, @ValidLogin UserData userData) {
  48. log.error("接收到支付请求, product : {}", JsonUtil.toString(product));
  49. return orderPayService.payCreate(product, userData);
  50. }
  51. @UnSignCheck
  52. @ApiOperation(value = "支付宝支付异步回调(二维码、H5、网站)")
  53. @RequestMapping(value = "/notify", method = RequestMethod.POST)
  54. public String aliPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
  55. return orderPayService.notify(request, response, PayWayEnum.ALIPAY.getNum());
  56. }
  57. @UnSignCheck
  58. @ApiOperation(value = "微信支付回调")
  59. @RequestMapping(value = "/wxPayNotify", method = RequestMethod.POST)
  60. public String wxPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
  61. return orderPayService.notify(request, response, PayWayEnum.WXPAY.getNum());
  62. }
  63. @UnSignCheck
  64. @ApiOperation(value = "支付宝支付同步回调(二维码、H5、网站)")
  65. @RequestMapping(value = "/alipaySynNotify", method = RequestMethod.GET)
  66. public ResultMap synNotify(HttpServletRequest request) {
  67. return orderPayService.synNotify(request, PayWayEnum.ALIPAY.getNum());
  68. }
  69. @ApiOperation(value = "获取订单支付结果")
  70. @GetMapping(value = "/get/result")
  71. public ResultVO<Boolean> getResult(@RequestParam String orderId) {
  72. return ResultVO.ok(orderPayService.payResult(orderId));
  73. }
  74. }