You've already forked FrameTour-BE
- 修改 ProfitShareKafkaProducer 的 sendRefundMessage 方法返回 CompletableFuture - 在 WxMpPayAdapter 中增加 transactionId 和 refundTransactionId 字段解析 - 在 PayResponse 和 RefundResponse 中新增 transactionId 相关字段 - 在 WxPayServiceImpl 中注入 ProfitShareKafkaProducer 并发送分账消息 - 调整退款逻辑以异步方式发送分账退款消息后再执行退款操作
51 lines
1.1 KiB
Java
51 lines
1.1 KiB
Java
package com.ycwl.basic.pay.entity;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
import lombok.Data;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
@Data
|
|
public class PayResponse {
|
|
private boolean valid;
|
|
private String orderNo;
|
|
private String transactionId;
|
|
@JsonIgnore
|
|
private Object originalResponse;
|
|
private Integer orderPrice;
|
|
private Integer payPrice;
|
|
private PAY_STATE state;
|
|
private String payTime;
|
|
@JsonIgnore
|
|
private String customResponse;
|
|
|
|
public boolean isPay() {
|
|
return state == PAY_STATE.SUCCESS;
|
|
}
|
|
|
|
public boolean isCancel() {
|
|
return state == PAY_STATE.CANCEL;
|
|
}
|
|
|
|
public boolean isRefund() {
|
|
return state == PAY_STATE.REFUND;
|
|
}
|
|
|
|
public void setPayPriceInYuan(BigDecimal money) {
|
|
payPrice = money.multiply(BigDecimal.valueOf(100)).intValue();
|
|
}
|
|
|
|
public void setOrderPriceInYuan(BigDecimal money) {
|
|
orderPrice = money.multiply(BigDecimal.valueOf(100)).intValue();
|
|
}
|
|
|
|
public enum PAY_STATE {
|
|
SUCCESS,
|
|
NOT_PAY,
|
|
CANCEL,
|
|
REFUND,
|
|
FAIL,
|
|
UNKNOWN;
|
|
}
|
|
}
|