PayController.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.qxgmat.controller.gateway;
  2. import com.alibaba.fastjson.JSON;
  3. import com.nuliji.tools.Response;
  4. import com.nuliji.tools.ResponseHelp;
  5. import com.nuliji.tools.exception.InsideException;
  6. import com.nuliji.tools.pay.common.ResultInfo;
  7. import com.qxgmat.data.constants.enums.trade.PayChannel;
  8. import com.qxgmat.data.dao.entity.Pay;
  9. import com.qxgmat.service.extend.TradeService;
  10. import com.qxgmat.service.inline.PayService;
  11. import io.swagger.annotations.ApiOperation;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.*;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. @RestController
  19. @RequestMapping("/gateway/pay")
  20. public class PayController {
  21. private static final Logger logger = LoggerFactory.getLogger(PayController.class);
  22. @Autowired
  23. private TradeService tradeService;
  24. @Autowired
  25. private PayService payService;
  26. @RequestMapping(value = "/wechat_qr", method = RequestMethod.POST)
  27. @ApiOperation(value = "微信二维码支付", httpMethod = "POST")
  28. public void wechatQr(HttpServletRequest request, HttpServletResponse response) {
  29. try {
  30. ResultInfo info = tradeService.notifyPay(PayChannel.WECHAT_QR, request);
  31. logger.debug(JSON.toJSONString(info));
  32. Pay pay = payService.getByNo(info.getNo());
  33. response.getWriter().write(tradeService.server(pay, info));
  34. }catch (InsideException e){
  35. logger.error(e.getMessage());
  36. }catch (Exception e){
  37. logger.error(e.getMessage());
  38. }
  39. }
  40. @RequestMapping(value = "/alipay_qr", method = RequestMethod.POST)
  41. @ApiOperation(value = "支付宝二维码支付", httpMethod = "POST")
  42. public void alipayQr(HttpServletRequest request, HttpServletResponse response) {
  43. try {
  44. ResultInfo info = tradeService.notifyPay(PayChannel.ALIPAY_QR, request);
  45. logger.debug(JSON.toJSONString(info));
  46. Pay pay = payService.getByNo(info.getNo());
  47. response.getWriter().write(tradeService.server(pay, info));
  48. }catch (InsideException e){
  49. logger.error(e.getMessage());
  50. }catch (Exception e){
  51. logger.error(e.getMessage());
  52. }
  53. }
  54. @RequestMapping("/return/wechat_qr")
  55. @ResponseBody
  56. public Response<Pay> wechatQrReturn(@RequestBody String content){
  57. ResultInfo payRequest = JSON.parseObject(content, ResultInfo.class);
  58. try {
  59. ResultInfo info = tradeService.returnPay(PayChannel.WECHAT_QR, payRequest);
  60. if (info == null) return ResponseHelp.error(101, "支付签名错误");
  61. Pay pay = payService.getByNo(info.getNo());
  62. if (pay == null) return ResponseHelp.error(101, "支付信息不存在");
  63. pay = tradeService.client(pay, info);
  64. return ResponseHelp.success(pay);
  65. }catch (InsideException e){
  66. return ResponseHelp.exception(e);
  67. }
  68. }
  69. @RequestMapping("/return/alipay_qr")
  70. @ResponseBody
  71. public Response<Pay> alipayQrReturn(@RequestBody String content){
  72. ResultInfo payRequest = JSON.parseObject(content, ResultInfo.class);
  73. try {
  74. ResultInfo info = tradeService.returnPay(PayChannel.ALIPAY_QR, payRequest);
  75. if (info == null) return ResponseHelp.error(101, "支付签名错误");
  76. Pay pay = payService.getByNo(info.getNo());
  77. if (pay == null) return ResponseHelp.error(101, "支付信息不存在");
  78. pay = tradeService.client(pay, info);
  79. return ResponseHelp.success(pay);
  80. }catch (InsideException e){
  81. return ResponseHelp.exception(e);
  82. }
  83. }
  84. }