|
|
@@ -445,18 +445,18 @@ public class HarOrderService {
|
|
|
HarQueryDetail detail = HarResponseParser.toBean(response.detailRaw(), HarQueryDetail.class);
|
|
|
if (detail != null) {
|
|
|
applyQueryDetail(order, detail);
|
|
|
- // 三个金额只有这一条路径能落库 —— 通知的 15 个字段里没有金额。
|
|
|
- // 所以「上游送了就要落库」这句话在这里是可验证的:已经付掉/退掉的单,
|
|
|
- // 三个金额却全空,只可能是「上游没送」或「字段名与我们对不上」。
|
|
|
- // 后者不是假想:这份规范已被证伪过两次(只认 subject 不认 title;
|
|
|
- // reason 全篇没写却必填)。detail 原文只在这里出现一次,联调期先留着 ——
|
|
|
- // 它每次都报,说明上游压根不送,那时该改的是这句话,不是再加日志。
|
|
|
+ // 手续费与渠道成本**只可能**从这一条查询路径来:2026-09-28 拿到真实通知
|
|
|
+ // 全文之后,「三个金额只能靠查询」这句话只剩这两格还成立(实收金额上游
|
|
|
+ // 在通知里就送了 actual_money)。这两格空 ⇒ 要么上游查询压根不送,
|
|
|
+ // 要么字段名与我们对不上 —— 后者不是假想,这份规范已被证伪三次
|
|
|
+ // (subject / reason / alipay_order_no+trade_date)。detail 原文只在
|
|
|
+ // 这里出现一次,联调期先留着:它每次都报,说明上游就不送,那时该改的是
|
|
|
+ // 这句话,不是再加日志。
|
|
|
if ((HarOrderStatus.PAID.equals(order.getTradeStatus())
|
|
|
|| HarOrderStatus.REFUNDED.equals(order.getTradeStatus()))
|
|
|
- && order.getRcvAmount() == null
|
|
|
&& order.getFeeAmount() == null
|
|
|
&& order.getChannelAmount() == null) {
|
|
|
- log.warn("[汇安融订单] 查询成功但三个金额全空: order_no={}, status={}, detail={}",
|
|
|
+ log.warn("[汇安融订单] 查询成功但手续费/渠道成本仍为空: order_no={}, status={}, detail={}",
|
|
|
order.getOrderNo(), order.getTradeStatus(), response.detailRaw());
|
|
|
}
|
|
|
} else {
|