跳转到主要内容
取消处于待支付状态的一次性订单。仅 pending 状态的订单可以取消。
POST /v1/actions/onetime-order/cancel-order
认证方式: Session Token — 见 Customer Endpoints(customer 或 buyer 角色)

取消行为

当前状态操作结果状态
pending立即取消canceled
completed拒绝不变(终态)
canceled拒绝不变(终态)
  • pending:订单立即取消,状态变为 canceled
  • 底层 PSP checkout session 会自动过期,无需单独调用 PSP 取消接口
  • completedcanceled 是终态,不能再次取消

请求体

字段类型必需说明
orderIdstring一次性订单 ID(Short ID 格式 ORD_xxx

请求示例

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

const client = new WaffoPancake({
  sessionToken: window.WAFFO_SESSION_TOKEN, // 由商户门户注入
  environment: "prod",
});

const result = await client.orders.cancelOnetime({
  orderId: "ORD_2aUyqjCzEIiEcYMKj7TZtw",
});

console.log(result.orderId); // "ORD_2aUyqjCzEIiEcYMKj7TZtw"
console.log(result.status);  // "canceled"

成功响应 (200)

{
  "data": {
    "orderId": "ORD_2aUyqjCzEIiEcYMKj7TZtw",
    "status": "canceled"
  }
}

响应字段

字段类型说明
orderIdstring订单 ID(Short ID)
statusstring新的订单状态(成功时恒为 canceled

错误响应

重试策略:4xx 一律不要重试 — 修正请求后重发。5xx 指数退避重试(起步 5s,最多 3 次)。
状态码errors[0].message含义推荐处理
400Missing required field: orderId请求体未提供 orderId修正请求体后重新提交
400Expected format: ORD_xxx, got "..."orderId Short ID 解码失败修正 orderId 格式后重新提交
400Order cannot be canceled, current status: X订单状态非 pending(如已 completedcanceled该订单已不可取消
401Authentication failedSession token 无效、过期或格式错误通过 Issue Session Token 重新签发
403Order does not belong to user归属校验失败验证调用方拥有该订单
404Order not found订单不存在验证 order ID
500Internal server error服务端意外失败指数退避重试(起步 5s,最多 3 次)