package com.ruoyi.payment.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.payment.api.factory.IcbcPaymentFallbackFactory; import com.ruoyi.payment.api.vo.IcbcPaymentReq; import com.ruoyi.payment.api.vo.IcbcPaymentResp; import com.ruoyi.payment.api.vo.IcbcRefundReq; import com.ruoyi.payment.api.vo.IcbcRefundResp; import com.ruoyi.payment.api.vo.IcbcSubOrderQueryReq; import com.ruoyi.payment.api.vo.IcbcSubOrderQueryResp; import com.ruoyi.payment.api.vo.IcbcSubOrderRefundReq; import com.ruoyi.payment.api.vo.IcbcSubOrderRefundResp; import com.ruoyi.payment.api.vo.IcbcSubOrderSplitReq; import com.ruoyi.payment.api.vo.IcbcSubOrderSplitResp; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; /** * 工行统一支付服务。 */ @FeignClient(contextId = "IcbcPaymentClient", value = ServiceNameConstants.PAYMENT_SERVICE, fallbackFactory = IcbcPaymentFallbackFactory.class) public interface IcbcPaymentClient { /** * 调起工行聚合支付。 */ @PostMapping("/icbc/payment") R payment(@RequestBody IcbcPaymentReq req); /** * 查询工行支付订单。 */ @PostMapping("/icbc/query") R query(@RequestParam("outTradeNo") String outTradeNo); /** * 关闭工行待支付订单。 */ @PostMapping("/icbc/close") R close(@RequestParam("outTradeNo") String outTradeNo); /** * 工行聚合支付退款。 */ @PostMapping("/icbc/refund") R refund(@RequestBody IcbcRefundReq req); /** * 工行小订单拆分。 */ @PostMapping("/icbc/sub-order/split") R splitSubOrder(@RequestBody IcbcSubOrderSplitReq req); /** * 工行小订单拆分退款。 */ @PostMapping("/icbc/sub-order/refund") R refundSubOrder(@RequestBody IcbcSubOrderRefundReq req); /** * 查询工行子订单。 */ @PostMapping("/icbc/sub-order/query") R querySubOrder(@RequestBody IcbcSubOrderQueryReq req); }