diff --git a/src/main/java/com/sczx/pay/service/WechatPayService.java b/src/main/java/com/sczx/pay/service/WechatPayService.java index 37b036c..5de96b6 100644 --- a/src/main/java/com/sczx/pay/service/WechatPayService.java +++ b/src/main/java/com/sczx/pay/service/WechatPayService.java @@ -11,6 +11,7 @@ import com.sczx.pay.mapper.OrderPayMapper; import com.sczx.pay.mapper.PaymentRecordMapper; import com.sczx.pay.mapper.RefundRecordMapper; import com.sczx.pay.sdk.WXPay; +import com.sczx.pay.thirdpart.integration.SyncInteg; import com.sczx.pay.utils.WXPayUtil; import com.sczx.pay.utils.IPUtils; import org.slf4j.Logger; @@ -51,6 +52,9 @@ public class WechatPayService { @Autowired private OrderPayMapper orderPayMapper; + @Autowired + private SyncInteg syncInteg; + @Value("${wechat.pay.app-id}") private String appId; @@ -271,7 +275,7 @@ public class WechatPayService { refundNotifyUrl ); - String path = certPath+companyConfig.getMchId()+".p12"; + String path = certPath+"wechatpay-"+companyConfig.getMchId()+"/"+companyConfig.getMchId()+".p12"; String certAbsolutePath = getCertAbsolutePath(path); wxPayConfig.setCertPath(certAbsolutePath); @@ -423,6 +427,9 @@ public class WechatPayService { }else if (OrderStatus.equals("RERENT_WAIT_PAY")){ OrderSub orderSub = orderPayMapper.getSubOrderByTradeNo(outTradeNo); orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),orderSub.getReturnTime(),0,orderMain.getOrderAmount().add(orderSub.getAmount()),"RENT_ING"); + //发送租电订单同步 + Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo); + syncInteg.sendSubOrderId(batterySubOrderId); } orderPayMapper.updateSubOrderPaymentStatus(outTradeNo,"WX_PAY",PayStatus.SUCCESS.getCode(),transactionId); diff --git a/src/main/java/com/sczx/pay/service/impl/AlipayServiceImpl.java b/src/main/java/com/sczx/pay/service/impl/AlipayServiceImpl.java index 9adbcad..4949907 100644 --- a/src/main/java/com/sczx/pay/service/impl/AlipayServiceImpl.java +++ b/src/main/java/com/sczx/pay/service/impl/AlipayServiceImpl.java @@ -14,6 +14,7 @@ import com.sczx.pay.mapper.OrderPayMapper; import com.sczx.pay.mapper.PaymentRecordMapper; import com.sczx.pay.mapper.RefundRecordMapper; import com.sczx.pay.service.AlipayService; +import com.sczx.pay.thirdpart.integration.SyncInteg; import com.sczx.pay.utils.AlipaySdkUtil; import com.sczx.pay.utils.ThreadPoolUtils; import lombok.extern.slf4j.Slf4j; @@ -58,6 +59,9 @@ public class AlipayServiceImpl implements AlipayService { @Autowired private OrderPayMapper orderPayMapper; + @Autowired + private SyncInteg syncInteg; + @Override public AlipayCreateResponse unifiedOrder(AlipayCreateRequest alipayCreateRequest) { AlipayCreateResponse response = new AlipayCreateResponse(); @@ -540,6 +544,9 @@ public class AlipayServiceImpl implements AlipayService { }else if (OrderStatus.equals("RERENT_WAIT_PAY")){ OrderSub orderSub = orderPayMapper.getSubOrderByTradeNo(outTradeNo); orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),orderSub.getReturnTime(),0,orderMain.getOrderAmount().add(orderSub.getAmount()),"RENT_ING"); + //发送租电订单同步 + Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo); + syncInteg.sendSubOrderId(batterySubOrderId); } orderPayMapper.updateSubOrderPaymentStatus(outTradeNo,"ZFB_PAY", PayStatus.SUCCESS.getCode(),tradeNo); return true; diff --git a/src/main/java/com/sczx/pay/thirdpart/facade/SyncFacade.java b/src/main/java/com/sczx/pay/thirdpart/facade/SyncFacade.java new file mode 100644 index 0000000..dc272fc --- /dev/null +++ b/src/main/java/com/sczx/pay/thirdpart/facade/SyncFacade.java @@ -0,0 +1,16 @@ +package com.sczx.pay.thirdpart.facade; + + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +import java.util.Map; + +@FeignClient(name = "sczx-sync", url = "${sczx-sync.ribbon.listOfServers:}") +public interface SyncFacade { + + @GetMapping("/send/subOrder/{subOrderId}") + Map sendSubOrderId(@PathVariable Long subOrderId); + +} \ No newline at end of file diff --git a/src/main/java/com/sczx/pay/thirdpart/integration/SyncInteg.java b/src/main/java/com/sczx/pay/thirdpart/integration/SyncInteg.java new file mode 100644 index 0000000..a431283 --- /dev/null +++ b/src/main/java/com/sczx/pay/thirdpart/integration/SyncInteg.java @@ -0,0 +1,34 @@ +package com.sczx.pay.thirdpart.integration; + + +import com.sczx.pay.exception.InnerException; +import com.sczx.pay.thirdpart.facade.SyncFacade; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Slf4j +@Component +public class SyncInteg { + + @Autowired + private SyncFacade syncFacade; + + public Map sendSubOrderId(Long subOrderId){ + try{ + Map result = syncFacade.sendSubOrderId(subOrderId); + if(result.get("code") == "200"){ + return result; + } + } catch (Exception e){ + log.error("发送租电订单同步失败",e); + throw new InnerException("发送租电订单同步失败"); + } + return null; + } + + + +}