orderId 必须属于该 session token 所绑定的 customer。为某 customer mint 的 token 不能取消另一 customer 的订阅。取消行为
取消待生效的换方案新订阅会作废那笔变更:新订阅直接变为
canceled,其 PSP 取消按发起时刻投递,因此原定切换时刻既不激活也不扣款。原订阅不会被放回生效 —— 它保持 canceling 并单向走向 canceled,恢复订阅对它返回 400。买家想继续付费,请重新下单。取消
past_due 订阅立即生效而非周期末生效,且不发送「取消中,可用至 X 日」邮件 —— 计费周期已经结束。此类取消不可撤回:恢复订阅对「发起取消时存在未结清扣款」的订阅一律返回 400。请求体
取消原因只在买家侧凭证发起、且取消动作真实成功后留存 —— 一次取消动作一行,因此取消 → 恢复 → 再取消会留下两行。原因写入是旁路:写入失败时取消照常成功、响应体不变;取消失败(400 / 500 / 502)时不产生记录。商户通过 GraphQL 读取已留存的原因。
不传
cancelReason 时的行为,取决于本次调用使用的凭证:
两个渠道刻意不共用这个哨兵码:把「从未询问」与「问过但拒答」混进同一个值,会让商户无法解读
not_provided 的占比。若你的集成也向买家展示原因选项、并希望「跳过」被计入分母,请显式提交 cancelReason(值域开放,例如 not_provided)。
请求示例
成功响应 (200)
响应字段
错误响应
重试策略:4xx 一律不要重试 — 修正请求后重发。5xx 指数退避重试(起步 5s,最多 3 次)。