通道编排

预览中

从我们的默认值开始。 仅覆盖您需要的部分。

设置方式:
Cursor

通道可用性、发送方规则和法规因国家/地区而异,要做到正确需要多年积累。Bird 将其作为按国家/地区的基础配置提供:哪些通道在哪里可用、允许使用哪些发送方,以及合理的验证码默认值。您的设置叠加在其上。您只需为某个国家/地区更改一项内容;未更改的部分自动回退到下一层。这就是作为一等 API 资源的按国家/地区路由——大多数验证 API 无法提供的控制能力。

verify.ts
200 · pending
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

// Send the code, then check it by recipient.
await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
}).safe();

const { data } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();

您继承 Bird 的默认值,然后在此基础上构建。

Bird Verify API 上的每次验证都通过级联机制解析其设置。最底层是 Bird 基于多年运营邮件和 SMS 经验维护的按国家/地区基础配置——因此在您进行任何配置之前,验证已经能在每个国家/地区合理路由。您的配置和按国家/地区的覆盖叠加在上层,单次请求选项还可以微调单个调用。您永远不需要从空白开始,只需管理您真正想做的决策。

值级联机制。

设置了值的最高层级优先生效;未设置的部分回退到下一层。

  1. 01

    单次请求选项。

    创建调用中的字段(验证码长度、通道偏好、语言区域)仅对该次验证生效。最轻量、最局部的覆盖。

  2. 02

    您的按国家/地区覆盖。

    为某个国家/地区更改通道顺序或发送方。覆盖以合并方式生效:仅修改您设置的字段,该国家/地区的其余部分仍从下层继承。

  3. 03

    您的配置默认值。

    您的全局方案和验证码规则——通道顺序、验证码长度、TTL 和重试次数,适用于所有未设置国家/地区覆盖的场景。

  4. 04

    Bird 的按国家/地区基础配置。

    最底层:Bird 基于大规模邮件和 SMS 运营经验得出的按国家/地区默认值。未设置的部分都会回退到此层,因此验证始终能解析为合理的方案。

覆盖某个国家/地区,其余继承。

只需设置一次方案,然后仅调整需要特殊处理的国家/地区。这里巴西优先使用 WhatsApp,其次是 SMS;其他所有国家/地区继续回退到您的默认值和 Bird 的基础配置。

orchestration.ts
200
// Your app-wide default plan.
await bird.verify.verifications.configurations.update("vfc_login", {
  channels: [
    { channel: "email", state: "enabled" },
    { channel: "sms", state: "enabled" },
  ],
}).safe();

// Override one country; the rest inherits.
await bird.verify.verifications.configurations.countries.upsert("vfc_login", "BR", {
  channels: [
    { channel: "whatsapp", state: "enabled" },
    { channel: "sms", state: "enabled" },
  ],
}).safe();

验证解析的结果。

在此配置下,巴西号码通过级联解析。BR 覆盖将通道排序为先 WhatsApp 后 SMS,两者均可用,验证会返回其将使用的有序方案及带类型的 vrf_ id。

resolved.ts
200
const { data } = await bird.verify.verifications.create({
  configuration_id: "vfc_login",
  to: { phone_number: "+5511998765432" }, // Brazil
}).safe();

// Resolved through the cascade + availability/kill-switch ceilings:
// {
//   id:           "vrf_01k2m9q8e7fh3v0b7m4d2a9xzt",
//   status:       "pending",
//   channels:     [{ channel: "whatsapp" }, { channel: "sms" }],
//   last_channel: "whatsapp"
// }

级联之上有两道上限。

级联决定默认值。两道门控决定允许什么——它们对解析后的方案设置上限,而非提供回退值:

按国家/地区可用性。您只能启用 Bird 在该国家/地区实际提供的通道。启用不支持的通道不会生效,也不会静默失败——可用性取交集,而非覆盖。

全局紧急开关。当服务提供商出现故障时,Bird 可以一次性在所有地区关闭某个通道。您的配置不受影响;解析后的方案会自动回退到下一个通道,开关恢复后即自动复原。

您配置的路由,而非您提交的工单。

每次验证独立解析,随响应返回。

  1. 01

    按号码确定的国家/地区路由。

    国家/地区从收件人的 E.164 号码自动推导——无需您传入。为某个国家/地区设置路由,即可覆盖该地区的通道顺序和发送方。

  2. 02

    开启和关闭通道。

    每个通道都有启用/禁用状态,因此您可以为某个国家/地区关闭某个通道,而不影响其在方案中的位置。

  3. 03

    解析后的方案随响应返回。

    每次验证都会报告其解析的有序通道列表,因此级联的决策结果一目了然。

  4. 04

    自动故障转移正在推出中。

    基于投递状态的方案推进(当某个通道未送达时自动尝试下一个)正随投递状态功能逐步推出。方案已在当前版本中解析并返回。

通道编排常见问题

什么是配置级联?+
这是验证设置的解析方式:先看每次请求的选项,再看您的国家/地区覆盖配置,然后是您的默认配置,最后是 Bird 的国家/地区基础配置。设置了值的最高层级优先生效,未设置的部分则向下层级透传——因此您只需配置想要更改的内容。
Bird 的国家/地区基础配置能给我什么?+
无需任何设置,即可为每个国家/地区提供合理的起点:哪些渠道值得尝试、哪些发送方被允许,以及合理的验证码默认值,这些都由 Bird 根据多年运营邮件和 SMS 的经验维护。您在此基础上构建,而无需从零摸索。
国家/地区覆盖配置会替换整个方案吗?+
不会——它是合并式的。您只需设置该国家/地区不同的字段,其余部分仍从您的配置和 Bird 的基础配置继承,因此覆盖配置是一项小而精准的更改,而非完整的重新定义。
我能在 Bird 不支持的国家/地区启用某个渠道吗?+
不能。国家/地区可用性是上限,而非默认值:您只能启用 Bird 在该地区支持的渠道。启用不可用的渠道不会生效,也不会静默失败,因此方案永远不会承诺一个实际无法发送的渠道。
国家/地区是如何确定的?+
在解析时根据收件人的 E.164 格式电话号码确定。您无需传递国家/地区参数;Bird 会自动识别并应用匹配的路由。邮件不受国家/地区限制。
我的用户会看到验证码来自谁?+
Authifly,Bird 的验证品牌。它是您的用户收到的每条验证码上显示的身份:邮件来自 otp@verify.authifly.com 或您自己的已验证域名,SMS 和 WhatsApp 则以 Authifly 品牌显示。authifly.com 是一个公开页面,向收件人说明 Authifly 代表企业发送合法的一次性验证码。Bird 是您构建产品的平台;Authifly 是收件人看到的品牌。

其他验证 API 无法提供的国家/地区级精细控制。

编排是 Bird Verify 的一项核心能力:渠道、验证码和限制随之而来,共享同样的两个端点。

从一个渠道开始。
准备好后,再添加其他渠道。

测试 API 密钥即刻可用。添加支付方式并验证发送者身份后,即可解锁生产环境。

正在使用 Claude Code、Cursor 或 Codex?复制一条设置提示,您的智能代理即可自动安装 Bird CLI 和相关技能。选择您的工具:

Cursor