Skip to main content
Customer Blocklist 可阻止已知的不良行为者再次向您购买商品。被阻止的客户无法付款,会失去其有效订阅,并可以在 Customer Portal 中查看账户,但无法更改订阅。您可以从 Settings → Blocklist 或通过 Blocklist API 管理阻止名单。
显示被阻止客户总数、包含标识符、阻止者和阻止时间列的被阻止条目表格,以及 Add to Blocklist 按钮的阻止列表设置页面

The Blocklist tab under Settings

阻止客户后会发生什么

添加阻止后,阻止会立即在以下各个区域生效:
阻止不会退还过去的付款,也不会影响未结争议。如需退款,请从 Refunds 页面单独发起。

阻止如何匹配客户

您可以按 customer ID 或 email 进行阻止。无论使用哪种方式,阻止都是基于客户的 email,而不是客户记录:
  • 该 email 对应的每条记录都会受到影响。 Checkout 可以为回访客户的 email 创建新的客户记录,因此仅阻止单个 customer ID 可能会被绕过,而按 email 阻止则不会。
  • 别名也会受到影响。 系统会将 email 转为小写,并移除其中的 +alias,因此 buyer+promo@example.com 和 Buyer@example.com 会被视为同一客户。地址中的点号会保持不变。
  • 仅限您的业务。 阻止仅适用于您的业务。同一 email 仍可在 Dodo Payments 上向其他业务购买商品。
  • email 必须属于现有客户。 如果 email 与您的任何客户都不匹配,您无法阻止该 email;如果客户记录没有 email,也无法阻止该客户记录。

阻止客户

您可以从 Blocklist 页面或客户自己的页面阻止客户。
1

Open the Blocklist

在 dashboard 中前往 Settings → Blocklist。
2

Add to Blocklist

点击 Add to Blocklist,然后在 Customer ID or email 中输入客户的 email 或 customer ID。面板会显示匹配的客户。
3

Confirm

在面板中点击 Add to Blocklist。客户的有效订阅会立即取消,该条目会显示在 Blocked entries 表格中。如果部分订阅仍在取消,dashboard 会显示提示。稍后刷新页面进行检查。
dashboard 不会要求填写原因。要记录阻止客户的原因,请在客户页面添加备注,或通过 API 执行阻止时发送 reason。

管理被阻止的客户

Blocklist 页面会列出所有有效的阻止:
  • Total Customers Blocked:当前被阻止的客户数量。
  • Blocked entries:每个阻止对应一行,其中包含您输入的 Identifier(email 或 customer ID)、Blocked By 和 Blocked On。Blocked By 显示添加阻止的团队成员;如果通过 API key 添加,则显示 API。
  • Search Identifier 和 Filters:按 email 或 customer ID 查找条目,或按 Blocked By 和 Blocked Between 筛选。
  • Action:See Details 打开被阻止客户的页面,Unblock 移除阻止。具有 Viewer 角色的团队成员无法解除阻止。

被阻止客户的页面

显示 Blocked 徽章、Unblock Customer 按钮、包含备注和 Added to blocklist 事件的 Activity Log,以及包含 customer ID 的 Reference IDs 面板的被阻止客户 Customer Information 页面

A blocked customer's details page

从 Sales → Customers 或 Blocklist 页面打开被阻止的客户,即可查看:
  • 客户姓名旁的 Blocked 徽章,以及 Unblock Customer 按钮。
  • Activity Log:客户被添加到阻止名单的时间、原因,以及团队之后添加的任何备注。点击 Add Note 记录新的上下文,例如拒付的处理结果。之后可以通过 API 编辑备注。
  • Reference IDs:与此阻止关联的 customer ID,可直接复制。

解除阻止客户

要解除对客户的阻止,请在客户页面点击 Unblock Customer,或在 Blocklist 页面 Action 列中选择 Unblock。然后点击 Unblock 确认。
  • Checkout 和 Customer Portal 的更改会立即恢复。
  • 已取消的订阅不会重新激活。 客户必须重新购买。
  • 该条目会与备注一起保留为审计记录,但不再显示在有效列表中。
  • 之后可以再次阻止同一客户。这会创建一个新条目。

客户看到的内容

被阻止的客户不会被告知自己已被阻止。
  • 在 checkout 中,付款会以通用拒付信息失败:“This payment cannot be processed.” API 会返回包含错误代码 PAYMENT_NOT_PERMITTED 的 HTTP 403,其中不会说明原因。实际原因仅会写入 Dodo Payments 的日志。
  • 在 Customer Portal 中,所有内容仍可见,但所有会更改账户的操作都会被拒绝。被拒绝的操作会返回带有 PORTAL_ACTION_NOT_PERMITTED 和消息 “This action is not available.” 的 HTTP 403。portal profile 会携带 read_only: true,因此自定义 portal 集成可以禁用自身控件。portal 永远不会暴露阻止名单条目或其备注。
如果您在自己的产品中渲染 checkout 或 portal 错误,请保持此行为。对于 PAYMENT_NOT_PERMITTED 和 PORTAL_ACTION_NOT_PERMITTED,显示通用消息。透露阻止信息会提示不良行为者尝试其他 email。

使用 API

Blocklist API 允许您从自己的工具中执行阻止,例如在收到拒付时。它需要您的 secret API key。任何 key 都可以列出条目并读取备注。启用 write access 的 key 可以阻止、解除阻止和管理备注。dashboard 对团队角色采用相同的权限划分:Viewer 角色可以读取列表,Editor 角色可以进行更改。 Blocklist API 有六个 endpoints: 列表仅返回有效的阻止。要筛选列表,请传入 identifier(对 email 或 customer ID 进行部分且不区分大小写的匹配)、blocked_by_email、created_at_gte 或 created_at_lte。默认每页返回 10 个条目:设置 page_size 可返回最多 100 个条目,设置 page_number 可翻页。

阻止客户

在请求 body 的顶层发送 customer_id 或 email。如果同时发送两者,阻止会使用 customer_id。reason 为可选项,并会显示在条目页面上。新建阻止会返回 HTTP 201。
响应会描述该条目以及此调用取消的订阅:
Response
以下字段需要重点关注:
阻止已被阻止的客户会返回带有 CUSTOMER_ALREADY_BLOCKED 的 HTTP 409,除非仍有订阅等待取消。在这种情况下,该调用会继续执行取消操作,并返回 HTTP 200。

检查客户是否被阻止

Get Customer Detail 会返回两个额外字段:blocked_at,即有效阻止添加的时间(客户未被阻止时为 null);以及 blocklist_entry_id,即对应的条目。List Customers endpoint 会将这两个字段留空。

解除对客户的阻止

成功时,endpoint 返回 HTTP 204;当 ID 与任何有效阻止都不匹配时,返回 HTTP 404。解除阻止会恢复 checkout 和 portal 的写入操作,但不会重新激活任何订阅。

最佳实践

  • 记录原因。 在阻止中记录简短原因,并为之后发生的任何情况添加备注,可以让支持团队了解完整经过,而无需离开 dashboard。
  • 拒付后进行阻止。 从争议或付款页面打开客户页面并在那里阻止客户,或通过 dispute.opened webhook 和 POST /blocklist/customers 自动执行。请参阅 Disputes。
  • 检查 subscriptions_swept。 通过 API 阻止客户时,重复调用,直到响应报告 true,确保没有遗留有效订阅。
  • 单独退款。 阻止只会停止未来购买。如果您需要向客户退款,请照常退还付款。
  • 检查列表。 对问题已解决的客户解除阻止。解除阻止会立即生效,同时保留历史记录。

相关内容

Customer Management

查找客户,打开其详情页面,并管理其订阅。

Customer Portal

被阻止的客户在 portal 中可以和不可以执行的操作。

Disputes

处理拒付,并决定何时应当进行阻止。

Error Codes

PAYMENT_NOT_PERMITTED 和 PORTAL_ACTION_NOT_PERMITTED 的含义。
最后修改于 2026年9月26日