PayOrderService.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.fdkankan.pay.service.impl;
  2. import com.fdkankan.pay.common.ResultCode;
  3. import com.fdkankan.pay.entity.Order;
  4. import com.fdkankan.pay.exception.BusinessException;
  5. import com.fdkankan.pay.service.IOrderService;
  6. import com.fdkankan.pay.util.alipay.sdk.AlipayService;
  7. import com.fdkankan.pay.util.paypal.sdk.PaypalService;
  8. import com.fdkankan.pay.util.wx.WechatPayService;
  9. import org.apache.commons.lang.StringUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14. @Service
  15. public class PayOrderService {
  16. @Autowired
  17. IOrderService orderService;
  18. @Autowired
  19. WechatPayService wechatPayService ;
  20. @Autowired
  21. AlipayService alipayService;
  22. @Autowired
  23. PaypalService paypalService;
  24. public Object openPay(Order param, String ipAddr) throws Exception {
  25. if(StringUtils.isBlank(param.getOrderSn()) || param.getPayType() == null){
  26. throw new BusinessException(ResultCode.PARAM_ERROR);
  27. }
  28. //jsApi微信支付,需要公众号openId
  29. if(param.getPayType() == 1 && StringUtils.isBlank(param.getOpenId())){
  30. throw new BusinessException(ResultCode.PARAM_ERROR);
  31. }
  32. Order order = orderService.getByOrderSn(param.getOrderSn());
  33. if(order == null){
  34. throw new BusinessException(ResultCode.ORDER_NOT_EXIST);
  35. }
  36. order.setPayType(param.getPayType());
  37. //微信支付
  38. orderService.updateById(order);
  39. if(param.getPayType() == 0 || param.getPayType() == 1 || param.getPayType() == 2){
  40. order.setOpenId(param.getOpenId());
  41. return wechatPayService.openPay(order,ipAddr);
  42. }
  43. //支付宝支付
  44. if(param.getPayType() == 3 || param.getPayType() == 4 ){
  45. return alipayService.openPay(order,ipAddr);
  46. }
  47. //paypal支付
  48. if(order.getPayType() == 5 ){
  49. return paypalService.openPay(order,ipAddr);
  50. }
  51. return null;
  52. }
  53. public Boolean callBack(String orderSn, Integer payType,HttpServletRequest request, HttpServletResponse response) {
  54. Order order = orderService.getByOrderSn(orderSn);
  55. if(order == null){
  56. throw new BusinessException(ResultCode.ORDER_NOT_EXIST);
  57. }
  58. if(order.getPayStatus() != 0){
  59. return false;
  60. }
  61. order.setPayType(payType);
  62. //微信支付回调
  63. if(order.getPayType() == 0 || order.getPayType() == 1 || order.getPayType() == 2){
  64. return wechatPayService.callBack(request,response,order);
  65. }
  66. //支付宝回调
  67. if(order.getPayType() == 3 || order.getPayType() == 4 ){
  68. return alipayService.callBack(request,response,order);
  69. }
  70. //paypal回调
  71. if(order.getPayType() == 5 ){
  72. return paypalService.callBack(request,response,order);
  73. }
  74. return true;
  75. }
  76. }