自定义短信解决方案
将自定义短信解决方案/提供商集成为运营商 API 的一部分
Fast Tracks 支持多种短信提供商,如果您的业务需要一个不在支持的提供商列表中的提供商,那么您可以构建这个 API。
Fast Track 短信服务
Fast Track 短信服务可以配置为向下面列出的运营商 API 端点发送短信请求,这允许运营商管理短信提供商。它支持发送消息和获取投递状态。发送功能支持单条或批量短信请求。
以下端点可以作为您的运营商 API 的一部分构建:
⬆️ POST /channels/sms/single
⬆️ POST /channels/sms/batch
运营商然后可以将这些请求转发给短信提供商进行处理,并返回相应的响应。
API 格式和响应需要按照下面概述的格式进行格式化
重要的是,下面概述的 "meta" 数据需要通过 Webhook 或轮询方式发送回 Fast Track,以便正确存储转换数据。请参考显示的示例和下面的表格以获得进一步的说明。
前提条件
- 告知 Fast Track 是否应考虑任何速率限制。(如果您计划实施速率限制,请事先联系 Fast Track,以便我们可以指导您支持的实施方式)
- 告知 Fast Track 是否应考虑任何批量最大限制。
- 向 Fast Track 提供集成提供商的任何特定凭据(如果需要)
- 支持的短信格式为 GSM7 和 USC2
发送短信(单条)
单条短信发送请求将在单独的 API 请求中包含每条个人短信的数据。
端点实现
按照下面的格式实现端点,以支持通过 API 发送单条短信。
⬆️ POST <operator-api-endpoint-url>/channels/sms/single
请求头
发送请求的头部包含一个 "X-Api-Key",这是在端点处认证 API 调用所需的令牌。此令牌需要传递给 Fast Track 以便进行这些请求。
请求体模式
请参考 Fast Track 发送的单条短信请求的以下示例。每个字段的描述在下面的表格中列出。
必需属性用 * 标记
| 键 | 类型 | 描述 |
|---|---|---|
activity.id * | integer | 短信的唯一标识符 |
activity.brand_id * | integer | Fast Track 上品牌的唯一标识符 |
activity.user_id * | string | 玩家的唯一标识符 |
activity.activity_id * | integer | Fast Track 中设置的活动的唯一标识符 |
activity.action_group_id * | integer | 此活动所属的行动组的标识符 |
activity.trigger_hash * | string | 标识触发此活动的触发器的哈希 |
activity.action_id * | integer | 活动内特定行动的标识符 |
content * | string | 短信消息正文 |
recipient * | string | E.164 格式的收件人电话号码 |
sender_name * | string | 向收件人显示的发送者姓名或号码 |
provider_name * | string | 路由消息的短信提供商 |
encoding * | string | 消息的字符编码。值:auto | gsm7 | ucs2 |
provider_id | string | 可选的提供商特定消息标识符 |
meta | object | 在 Fast Track CRM 活动中定义的自定义键值对 |
预期响应
运营商 API 应该分别返回每条个人短信消息的响应,以避免短信数据的无关存储。
成功 HTTP 200-299 JSON 响应
"sms_id" 将是由运营商 API 生成的唯一标识符,它允许 Fast Track 识别特定的短信消息,以便在发送后更新其投递状态。
错误 非 200 响应 JSON 响应
错误响应通常与 HTTP 状态码 400s 或 500s 相关联。响应应包含一个 "error" 字段,描述出现了什么问题并协助故障排除。
来自运营商 API 的响应将根据 HTTP 状态码的类别进行不同处理。下表总结了 HTTP 状态码如何分别处理。
| HTTP 状态码 | 描述 |
|---|---|
200-299 | 成功投递。Fast Track 将确认消息并开始处理队列中的下一条消息。 |
400-499 | 不成功。收到此错误时,Fast Track 将跳过短信消息。此外,如果启用了该服务,它将把数据发送到失败操作。 |
500 或任何其他未在上面列出的状态码 | 不成功。服务致命错误,Fast Track 将持续重试直到收到 200 响应。 |
批量短信
批量短信有助于在一个 API 请求中处理短信集合。批量请求中的消息数量受配置中设置的整数量限制,并在配置的时间跨度内发送,即使批量尚未满。
端点实现
按照下面的格式实现端点,以支持通过 API 批量发送短信。
⬆️ POST <operator-api-endpoint-url>/channels/sms/batch
请求头
发送请求的头部包含一个 "X-Api-Key",这是在端点处认证 API 调用所需的令牌。此令牌需要传递给 Fast Track 以便进行这些请求。
请求体模式
这里是批量请求时预期格式的示例。它与单条短信请求类似,但请求存储在数组中,一个接一个。
有关格式化、描述和必需字段的更多详细信息,请参见上表(对于单条短信)。
预期响应
运营商 API 应返回以下响应。
成功 HTTP 200 JSON 响应
请求中最初发送的 "activity.id" 将在响应中作为 "id" 返回。这是帮助 Fast Track 识别初始批量请求中个别短信消息所必需的。
"sms_id" 将是由运营商 API 生成的唯一标识符,Fast Track 将使用它在更新状态时识别相关的短信消息。
如果任何列出的类别("successful"、"failed" 或 "fatal")没有关联的短信,它们应作为空数组返回。
请求需要包含 successful、failed 或 fatal 属性中的一个
响应处理的逻辑流程与单条短信中 HTTP 状态码的处理方式非常相似。唯一的区别是将根据响应中消息的类别处理状态码为 200 的响应。
| 响应类别 | 描述 |
|---|---|
successful | 成功投递。Fast Track 将确认消息并开始处理队列中的下一个批次。 |
failed | 不成功。收到此错误时,Fast Track 将跳过短信消息。此外,如果启用了该服务,它将把数据发送到失败操作。 |
fatal | 消息将被重试 |
响应中未列出的任何其他消息将被重试。
错误(非 500 响应)JSON 响应
Fast Track 在批量处理中仅支持 HTTP 状态码 200。如果收到任何其他状态码,整个批量请求将