Webhook 增加订单号查询

This commit is contained in:
yml2213
2026-04-13 17:32:42 +08:00
parent 96d1644b1c
commit 7008c85e58
6 changed files with 126 additions and 55 deletions
@@ -41,6 +41,7 @@ import { nowIso } from '../../utils/time.js'
import { reserveInventoryForTask } from '../order/inventory-service.js'
import { replayAgisoTradeWebhookEvent } from '../order/webhook-service.js'
import { syncConfiguredFulfillmentBindings } from '../bootstrap/fulfillment-bootstrap-service.js'
import { extractAgisoTradePayload, resolveAgisoTradePlatformOrderId } from '../order/agiso-trade-parsing.js'
import { normalizeProductName } from '../order/product-match-service.js'
import { normalizeDateQuery, normalizePage, normalizePageSize, safeParseJson } from './admin-query-utils.js'
import { normalizeAdminRole } from './admin-auth-service.js'
@@ -493,6 +494,7 @@ export async function getAdminWebhookEvents(query = {}) {
pageSize,
provider: String(query.provider || '').trim(),
platform: String(query.platform || '').trim(),
platformOrderId: String(query.platformOrderId || '').trim(),
processed: String(query.processed || '').trim(),
relatedOrderId: String(query.relatedOrderId || '').trim(),
dateFrom: normalizeDateQuery(query.dateFrom),
@@ -1404,7 +1406,6 @@ async function mapAdminWebhookEvent(item, { includeRaw = false } = {}) {
const body = normalizeRecord(safeParseJson(item.body_json))
const payload = extractWebhookPayload(body)
const itemSources = extractWebhookItemSources(payload)
const firstItem = itemSources[0] || {}
const rawAmount = pickFirstNonEmpty([
payload.total_fee,
payload.totalFee,
@@ -1473,18 +1474,7 @@ async function mapAdminWebhookEvent(item, { includeRaw = false } = {}) {
processError: item.process_error,
relatedOrderId: item.related_order_id,
createdAt: item.created_at,
platformOrderId: pickFirstNonEmpty([
payload.biz_order_id,
payload.bizOrderId,
payload.Tid,
payload.tid,
payload.Oid,
payload.oid,
payload.order_id,
payload.orderId,
firstItem.Oid,
firstItem.oid,
]),
platformOrderId: resolveAgisoTradePlatformOrderId(payload),
buyerId: pickFirstNonEmpty([
payload.buyer_id,
payload.buyerId,
@@ -2238,14 +2228,7 @@ function isPlainObject(value) {
}
function extractWebhookPayload(body) {
const normalizedBody = normalizeRecord(body)
const rawJson = String(normalizedBody.json || normalizedBody.JSON || '').trim()
if (rawJson) {
return normalizeRecord(safeParseJson(rawJson))
}
return normalizedBody
return extractAgisoTradePayload(body)
}
function extractWebhookItemSources(payload) {