Просмотр исходного кода

LINE Pay线下单校验各拒绝路径补充warn日志便于定位

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
qmj 1 день назад
Родитель
Сommit
3c5db2ec83

+ 12 - 0
ruoyi-admin/src/main/java/com/ruoyi/app/pay/LinePayOfflineService.java

@@ -442,12 +442,18 @@ public class LinePayOfflineService {
         }
         PosOrder order = orderService.getOne(new QueryWrapper<PosOrder>().eq("dd_id", ddId));
         if (order == null || !"MERCHANT".equals(order.getOrderSource())) {
+            // 三个 forbidden 抛点对商家展示同一消息,靠日志区分具体哪条不满足
+            log.warn("LINE Pay offline order rejected: null or not merchant-sourced, merchantId={}, ddId={}, orderSource={}, shId={}, mdId={}",
+                    merchantId, ddId, order == null ? null : order.getOrderSource(),
+                    order == null ? null : order.getShId(), order == null ? null : order.getMdId());
             throw new ServiceException(MessageUtils.message("line.pay.offline.order.forbidden"));
         }
         boolean directMerchant = "1".equals(merchant.getUserType())
                 || "3".equals(merchant.getUserType());
         PosStore store = storeService.getById(order.getMdId());
         if (store == null) {
+            log.warn("LINE Pay offline order rejected: store missing, merchantId={}, ddId={}, mdId={}",
+                    merchantId, ddId, order.getMdId());
             throw new ServiceException(MessageUtils.message("line.pay.offline.order.forbidden"));
         }
         boolean owned = directMerchant
@@ -455,6 +461,9 @@ public class LinePayOfflineService {
                 && merchant.getUserId().equals(store.getUserId())
                 : merchant.getStoreId() != null && merchant.getStoreId().equals(order.getMdId());
         if (!owned) {
+            log.warn("LINE Pay offline order rejected: not owned, merchantId={}, userType={}, merchantStoreId={}, ddId={}, orderShId={}, orderMdId={}, storeUserId={}",
+                    merchantId, merchant.getUserType(), merchant.getStoreId(), ddId,
+                    order.getShId(), order.getMdId(), store.getUserId());
             throw new ServiceException(MessageUtils.message("line.pay.offline.order.forbidden"));
         }
         String parentDdId = order.getParentDdId() == null
@@ -468,6 +477,9 @@ public class LinePayOfflineService {
                 || order.getState() == null || order.getState() == 3L || order.getState() == 4L
                 || order.getAmount() == null || order.getAmount() <= 0 || order.getMdId() == null
                 || order.getAfterSaleStatus() != null && order.getAfterSaleStatus() != 0L)) {
+            log.warn("LINE Pay offline order rejected: not payable, merchantId={}, ddId={}, payType={}, payStatus={}, state={}, amount={}, afterSaleStatus={}",
+                    merchantId, ddId, order.getPayType(), order.getPayStatus(), order.getState(),
+                    order.getAmount(), order.getAfterSaleStatus());
             throw new ServiceException(MessageUtils.message("line.pay.offline.order.invalid"));
         }
         return order;