fix(open91): 履约未就绪时保持轮询等待

This commit is contained in:
yml2213
2026-11-03 13:27:53 +08:00
parent b842d00fc3
commit f336311ef8
3 changed files with 52 additions and 29 deletions
@@ -25,6 +25,32 @@ import type { OrderItemRow, OrderRow } from '../../../types/repository/rows.js'
export const OPEN_91_PENDING_CONFIG_STATUS = 'pending_config'
export const OPEN_91_MANUAL_FAILED_STATUS = 'manual_failed'
export async function markOpen91OrderPendingConfig(order: OrderRow, reason = '') {
const now = nowIso()
const rawPayload = parseJsonObject(order.raw_payload_json)
return updateOrder(order.id, {
provider: order.provider,
platform: order.platform,
shopId: order.shop_id,
shopName: order.shop_name,
platformOrderId: order.platform_order_id,
orderStatus: OPEN_91_PENDING_CONFIG_STATUS,
payStatus: order.pay_status,
buyerId: order.buyer_id,
buyerName: order.buyer_name,
receiverContact: order.receiver_contact,
totalAmount: Number(order.total_amount) || 0,
currency: order.currency,
rawPayloadJson: JSON.stringify({
...rawPayload,
pendingReason: String(reason || '').trim() || 'fulfillment_not_ready',
pendingAt: now,
}),
paidAt: order.paid_at,
updatedAt: now,
})
}
export function buildOpen91SourceEvent(payload: JsonObject = {}, config: JsonObject = {}) {
const normalized = normalizeOpen91CreatePayload(payload)
const productInfo = parseOpen91ProductNo(normalized.productNo)