PayOrderService.java 3.4 KB

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