跳转到主要内容
更新现有 Webhook 的 URL、订阅事件或通道特定凭据。channeltestMode 字段不可变 —— 如需变更,请删除后重新添加。
POST /v1/actions/store/update-webhook
认证方式: API Key(需要 owner 或 admin 角色)

请求体

字段类型必需说明
idstringWebhook UUID(来自 add-webhook 返回值或 GraphQL Store.storeWebhooks
urlstring替换目标 URL。
eventsstring[]替换订阅的事件类型
secretstring | null替换通道特定凭据。传入 null 清空。
channel 在 Webhook 记录创建后即固定 —— 如需切换通道,请删除后重新添加。URL 变更会原样接受;商户需自行确保新 URL 与通道匹配。

请求示例

import { WaffoPancake } from "@waffo/pancake-ts";

const client = new WaffoPancake({
  merchantId: process.env.WAFFO_MERCHANT_ID!,
  privateKey: process.env.WAFFO_PRIVATE_KEY!,
});

// 为已有 Webhook 增加更多事件
await client.webhooks.update({
  id: "11111111-2222-3333-4444-555555555555",
  events: ["order.completed", "refund.succeeded", "subscription.canceled"],
});

成功响应 (200)

返回更新后的 Webhook 实体。结构与 add-webhook 相同。

响应字段

字段类型说明
idstringWebhook UUID
storeIdstring所属门店的 UUID
channelstringWebhook 通道(不可变)
urlstring目标 Webhook URL
eventsstring[]订阅的事件类型
testModebooleantrue 对测试交易触发,false 对生产交易触发(不可变)
secretstring | null通道特定凭据,已清空时为 null
createdAtstring创建时间戳(ISO 8601)
updatedAtstring最后更新时间戳(ISO 8601)

错误响应

重试策略:4xx 一律不要重试 — 修正请求后重发。5xx 指数退避重试(起步 5s,最多 3 次)。
状态码errors[0].message含义推荐处理
400Missing required field: id未提供 id修正请求体后重发
400id must be a valid UUIDid 不是合法 UUID修正 id 后重发
400Invalid URL formaturl 无法解析为合法 URL修正 URL 格式(HTTPS、合法 URL)后重发
400events must be a string arrayevents 不是字符串 JSON 数组以字符串数组形式发送 events(如 ["order.completed"]
400secret must be a string or nullsecret 既不是 string 也不是 null发送字符串值,或 null 表示清空
403Not authorized to manage webhooks for this store调用方在所属门店上的 merchant 角色不是 owneradmin换用拥有所需角色的 API Key
404Webhook not found指定 id 的 webhook 不存在(或被并发请求删除)先验证 id;若刚被移除,重新拉取 webhook 列表后再决定
500Internal server error服务端意外失败指数退避重试(起步 5s,最多 3 次)