|
@@ -89,6 +89,15 @@ public class HarOrderService {
|
|
|
*/
|
|
*/
|
|
|
private static final String BIZ_ALIPAY_UN_STAGE = "har_ali_un_stage";
|
|
private static final String BIZ_ALIPAY_UN_STAGE = "har_ali_un_stage";
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 调用方没填 {@code trade_type} 时的默认值(非分期,支付宝支付)。
|
|
|
|
|
+ *
|
|
|
|
|
+ * <p>2026-10-09 起从调用方契约里拿掉:绝大多数接入只要非分期这一种,让每个调用方
|
|
|
|
|
+ * 照抄枚举值没有意义(配套:{@link HarOrderCreateDTO#getTradeType} 不再必填,
|
|
|
|
|
+ * 开放文档不再列它)。显式传值的仍原样透传 —— 分期与后台表单照旧。
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final String TRADE_TYPE_ALIPAY_UN_STAGE = "alipay_un_stage";
|
|
|
|
|
+
|
|
|
private final HarOrderMapper orderMapper;
|
|
private final HarOrderMapper orderMapper;
|
|
|
private final HarMerchantService merchantService;
|
|
private final HarMerchantService merchantService;
|
|
|
/**
|
|
/**
|
|
@@ -473,7 +482,7 @@ public class HarOrderService {
|
|
|
entity.setThirdShopCode(thirdShopCode);
|
|
entity.setThirdShopCode(thirdShopCode);
|
|
|
entity.setPrice(dto.getPrice());
|
|
entity.setPrice(dto.getPrice());
|
|
|
entity.setTitle(dto.getTitle());
|
|
entity.setTitle(dto.getTitle());
|
|
|
- entity.setTradeType(dto.getTradeType());
|
|
|
|
|
|
|
+ entity.setTradeType(resolveTradeType(dto));
|
|
|
entity.setBiz(resolveBiz(dto));
|
|
entity.setBiz(resolveBiz(dto));
|
|
|
entity.setStageNum(dto.getStageNum());
|
|
entity.setStageNum(dto.getStageNum());
|
|
|
entity.setPercent(dto.getPercent());
|
|
entity.setPercent(dto.getPercent());
|
|
@@ -762,16 +771,28 @@ public class HarOrderService {
|
|
|
.atZone(ZoneId.systemDefault()).toOffsetDateTime();
|
|
.atZone(ZoneId.systemDefault()).toOffsetDateTime();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 解析 trade_type(2026-10-09):留空(null / 空串)⇒ {@link #TRADE_TYPE_ALIPAY_UN_STAGE};
|
|
|
|
|
+ * 显式取值原样透传、不校验 —— 分期({@code alipay_stage})与后台表单走这条路。
|
|
|
|
|
+ *
|
|
|
|
|
+ * <p>落库、两条上游请求、以及 {@link #resolveBiz} 的派生都读这个解析结果:
|
|
|
|
|
+ * 各读各的 {@code dto.getTradeType()} 的话,留空时落库为空、上游收到默认值,对不上账。
|
|
|
|
|
+ */
|
|
|
|
|
+ private static String resolveTradeType(HarOrderCreateDTO dto) {
|
|
|
|
|
+ return StrUtil.isBlank(dto.getTradeType()) ? TRADE_TYPE_ALIPAY_UN_STAGE : dto.getTradeType();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 解析 biz(2026-10-09 去上游化):调用方显式给了就原样透传(后台表单与既有调用方
|
|
* 解析 biz(2026-10-09 去上游化):调用方显式给了就原样透传(后台表单与既有调用方
|
|
|
- * 仍按老口径传);留空时按 trade_type 派生 —— 非分期({@code alipay_un_stage})
|
|
|
|
|
- * ⇒ {@link #BIZ_ALIPAY_UN_STAGE};分期与其余取值没有规范依据,保持空(不替上游编)。
|
|
|
|
|
|
|
+ * 仍按老口径传);留空时按 trade_type 派生 —— 非分期({@code alipay_un_stage},
|
|
|
|
|
+ * 含留空被填充的那一档)⇒ {@link #BIZ_ALIPAY_UN_STAGE};分期与其余取值没有规范依据,
|
|
|
|
|
+ * 保持空(不替上游编)。
|
|
|
*/
|
|
*/
|
|
|
private static String resolveBiz(HarOrderCreateDTO dto) {
|
|
private static String resolveBiz(HarOrderCreateDTO dto) {
|
|
|
if (StrUtil.isNotBlank(dto.getBiz())) {
|
|
if (StrUtil.isNotBlank(dto.getBiz())) {
|
|
|
return dto.getBiz();
|
|
return dto.getBiz();
|
|
|
}
|
|
}
|
|
|
- return "alipay_un_stage".equals(dto.getTradeType()) ? BIZ_ALIPAY_UN_STAGE : null;
|
|
|
|
|
|
|
+ return TRADE_TYPE_ALIPAY_UN_STAGE.equals(resolveTradeType(dto)) ? BIZ_ALIPAY_UN_STAGE : null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private HarPrecreateRequest buildPrecreateRequest(HarOrderCreateDTO dto,
|
|
private HarPrecreateRequest buildPrecreateRequest(HarOrderCreateDTO dto,
|
|
@@ -782,7 +803,7 @@ public class HarOrderService {
|
|
|
req.setPrice(dto.getPrice().toPlainString());
|
|
req.setPrice(dto.getPrice().toPlainString());
|
|
|
req.setTitle(dto.getTitle());
|
|
req.setTitle(dto.getTitle());
|
|
|
req.setStageNum(dto.getStageNum());
|
|
req.setStageNum(dto.getStageNum());
|
|
|
- req.setTradeType(dto.getTradeType());
|
|
|
|
|
|
|
+ req.setTradeType(resolveTradeType(dto));
|
|
|
req.setBiz(resolveBiz(dto));
|
|
req.setBiz(resolveBiz(dto));
|
|
|
req.setPercent(dto.getPercent());
|
|
req.setPercent(dto.getPercent());
|
|
|
req.setMerchantCode(merchant.getMerchantCode());
|
|
req.setMerchantCode(merchant.getMerchantCode());
|
|
@@ -804,7 +825,7 @@ public class HarOrderService {
|
|
|
req.setTitle(dto.getTitle());
|
|
req.setTitle(dto.getTitle());
|
|
|
req.setAuthCode(dto.getAuthCode());
|
|
req.setAuthCode(dto.getAuthCode());
|
|
|
req.setStageNum(dto.getStageNum());
|
|
req.setStageNum(dto.getStageNum());
|
|
|
- req.setTradeType(dto.getTradeType());
|
|
|
|
|
|
|
+ req.setTradeType(resolveTradeType(dto));
|
|
|
req.setBiz(resolveBiz(dto));
|
|
req.setBiz(resolveBiz(dto));
|
|
|
req.setPercent(dto.getPercent());
|
|
req.setPercent(dto.getPercent());
|
|
|
req.setMerchantCode(merchant.getMerchantCode());
|
|
req.setMerchantCode(merchant.getMerchantCode());
|