-- 表:wms_webhook_log -- 用途:Webhook 日志。平台回调的接收与处理结果,用于验签后的幂等。 -- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md -- 说明:先校验签名和时间戳再入库。重复 event_id 直接返回成功,不重复建单。 CREATE TABLE `wms_webhook_log` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键', `tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码', `shop_code` VARCHAR(64) NOT NULL COMMENT '店铺编码', `platform` VARCHAR(32) NOT NULL COMMENT '平台标识', `event_id` VARCHAR(128) NOT NULL COMMENT '平台事件 ID', `event_type` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '事件类型', `process_status` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT 'pending 待处理,processed 已处理,failed 处理失败', `payload` JSON NULL COMMENT '报文体,不得包含密钥明文', `error_message` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '处理失败原因', `received_at` DATETIME(3) NOT NULL COMMENT '接收时间', `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', `updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_shop_event` (`tenant_code`, `shop_code`, `event_id`), KEY `idx_tenant_status` (`tenant_code`, `process_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Webhook 日志';