01简要说明
要使用 SMSMeteor 发送 OTP 验证码,请调用 POST /v1/messages:号码使用 E.164 格式,短信以您的品牌开头并包含验证码,将 validity 设为验证码的有效期,并将 window.quiet_hours 设为 bypass。响应中会包含价格,message.delivered webhook 会确认送达,通常只需几秒。
开设账户无需身份验证,从第一条到第一百万条验证码,都按目的地适用相同费率。
- 流量类型
- 事务型,不受静默时段限制
- API 调用
POST /v1/messages,每个验证码调用一次- 有效期
- 5 到 10 分钟(默认为 48 小时)
- 长度
- 一个分段;中文使用 Unicode,纯拉丁文本使用 GSM-7;不含链接
- 重试
- 使用同一个
Idempotency-Key,绝不发送第二个验证码 - 确认方式
message.deliveredwebhook 或状态轮询
推荐设置
02使用流程
从零开始,只需 4 步即可送达。
-
01创建密钥
为签发验证码的服务创建仅限发送权限的 API 密钥;如果服务运行在固定服务器上,请设置 IP 允许列表。测试密钥可让您无需余额就搭建完整流程。
-
02发送验证码
品牌在前,验证码其次,有效期最后。控制在一个分段。将 validity 设为验证码寿命,并把短信标记为事务型。
-
03监听结果
delivered 事件完成闭环;如果 failed 事件说明号码未知,您的界面应要求用户提供其他号码,而非继续提供重发选项。
-
04保护端点
按号码、IP 和账户限制请求速率,并在第二次请求后要求完成验证。向有效号码大量发送短信会产生费用。
03关键事项
什么决定验证码能否及时送达
用户能否及时看到验证码取决于三点:线路、格式和时段。线路由我们负责:为每个目的地使用经过实测的线路,事务型流量绝不会排在群发任务之后。格式由您决定:文本应简短,中文使用 Unicode,纯拉丁文本可使用 GSM-7;并在开头写明品牌,因为在美洲以及要求注册发件人的地区,收件人看到的是号码而非您的名称。时段则由事务型标记处理,使短信能在当地营销时段之外发出。
验证码短信中不要放链接。运营商对含链接验证码的过滤比任何其他模式都严格,而在用户看来,被过滤的验证码与产品故障毫无区别。
04实际操作
不会白白消耗余额的重发逻辑
允许用户在 30 秒后再次请求,之后依次等待 60 秒、120 秒。签发新验证码时使旧验证码失效。使用用户和尝试次数构建幂等键,这样您一侧发生超时时可以安全重试。webhook 报告因号码未知而失败时,请停止提供重发:问题在号码,不在网络。
按目的地衡量从验证码发出到用户输入的转化率。这比任何回执都更能说明实际送达,因为它同时涵盖了手机、通知和用户本人。
06有效的消息示例
查看它在手机上的显示效果,以及请求中的写法。
品牌在前,尽早出现验证码,不含链接,一个分段。
curl https://api.smsmeteor.com/v1/messages \
-H "Authorization: Bearer $SMSMETEOR_KEY" \
-H "Idempotency-Key: otp-user-8841-attempt-1" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550142",
"from": "ACME",
"text": "ACME:您的验证码是 493 201,10 分钟后失效。",
"validity": 10,
"window": { "quiet_hours": "bypass" },
"campaign": "otp-login"
}'07常见问题
我们常见的三个错误,以及避免方法。
验证码短信中的链接
这是短信中最容易被过滤的模式。把验证码直接写在文本中,不要加入可点击内容。
10 分钟验证码使用默认有效期
验证码过期后才送达只会带来支持工单。请将 validity 设为验证码寿命。
每次重试都使用新的幂等键
这会发出两个验证码。重复同一次尝试时复用原键;只有用户请求新验证码时才更换。
09常见问题解答
通过短信发送 OTP 和验证码:常见问题。
OTP 短信多快可以送达?
在线路运行正常时,API 调用后几秒内验证码即可到达手机。事务型短信不会排在群发任务之后;状态页面会公布送达延迟,供您查看当前数据。
可以在夜间发送 OTP 验证码吗?
可以。将 window.quiet_hours 设为 bypass,短信就会按事务型处理,在所有目的地立即发出。静默时段只会暂缓营销流量。
验证码会把我的品牌显示为发件人吗?
在支持按原样显示字母数字发件人的目的地会显示。在美洲、中国及要求注册的国家和地区,收件人看到的是号码,因此品牌应写在短信开头。每个国家和地区页面都会说明相关规则。
一条 OTP 短信多少钱?
按目的地公布的单个分段费率计费,例如发送到美国为 $0.0084,发送到印度为 $0.0256。不收单次验证费或月费。
发送验证码需要验证公司吗?
不需要。只凭电子邮件地址即可开设账户。我们检查的是内容:验证码可以发送,冒充银行或公共服务机构则不允许。
如何防止机器人通过验证码端点耗尽余额?
请在您一侧按号码、IP 和账户限制速率,在第二次请求后增加验证,并拒绝您不提供服务的目的地。不支持的号码前缀会免费拒绝,但发送到有效号码的短信会计费。
