全球覆盖
面向海外多国家及地区,让验证码随业务走向全球。
覆盖海外应用注册、找回密码、支付认证等场景,支持全球多地区验证码触达与发送状态分析。
Your verification code is 483920. Valid for 5 minutes.
验证成功 · 产品流程演示
VALUE PROPS · 价值主张
国际验证码短信连接全球多地区触达、运营商通道与状态回执,守护出海应用的关键验证链路。
面向海外多国家及地区,让验证码随业务走向全球。
按目的地配置发送线路,连接本地运营商资源。
追踪提交、送达和失败状态,定位每一次发送。
独立接口凭证、IP 白名单与频率限制,守护验证链路。
连接海外注册、登录与支付验证目的地。
一套接口管理不同目的地的发送请求。
从请求编号到号码状态,发送过程有据可循。
SCENARIOS · 应用场景
把国际验证码放在用户关键动作发生的地方,降低账户风险,也减少验证链路阻塞。
出海 App 在注册和登录时向海外手机号下发验证码,减少密码依赖,并通过发送状态判断用户是否成功接收。
用户忘记密码或更换登录设备时,通过绑定手机号完成身份校验,为密码重置增加一道保护,让海外用户顺畅回到账户。
在支付确认、资金变更等关键动作中加入短信验证,结合发送状态和业务风控策略,降低账户被冒用的风险。
CAPABILITIES · 核心能力
面向海外验证场景,提供从国家路由、运营商网关到发送结果查询的完整链路。
按国家、地区和业务场景选择可用通道,让每次请求都有清晰的发送路径。
一个 API 连接多地区短信服务,免去逐个对接供应商的重复开发。
从提交到送达,逐号码查看处理状态、失败原因和请求记录。
使用模板和变量组织不同语言的验证码内容,适配海外用户。
AccessKey 凭证、IP 白名单和发送限额,按业务需求配置访问策略。
ARCHITECTURES · 技术架构
国际验证码不只是一条短信,而是业务请求、通道路由、运营商网关和回执分析协同工作的链路。
注册、登录、支付等关键动作触发验证码请求。
校验接口凭证、模板变量和业务发送权限。
按目的地和可用线路分发请求,进入发送队列。
通过目的地通道,将验证码下发至用户手机。
发送状态与费用明细回传,支持逐号码查询。
COMPARISONS · 性能对比
覆盖范围、回执可见性和管理成本,决定海外验证链路能不能稳定跑起来。
| 维度 | 推荐方案莱特国际验证码短信 | 普通国际通道 | 自建海外供应商 |
|---|---|---|---|
| 覆盖范围 | 按目的地开通,多地区统一管理 | 取决于单一通道覆盖 | 逐个接入不同地区供应商 |
| 接入方式 | 统一 API 与控制台 | 按通道分别适配 | 维护多套接口与凭证 |
| 回执能力 | 逐号码状态与失败原因 | 回执颗粒度取决于通道 | 自行统一状态和错误码 |
| 账务管理 | 估价、消费、退款统一查询 | 按供应商分别核对 | 自建费用归集与对账 |
| 安全控制 | AccessKey / IP 白名单 / 频率限制 | 取决于供应商开放能力 | 自行建设与持续维护 |
CASES · 客户案例
不同业务的共同诉求是:海外验证码必须能送达、可追踪、可定位问题。以下展示典型业务接入场景。
工具类 App 在多地区上线时,通过国际验证码连接新用户注册、登录与找回密码流程,按号码查询状态并定位失败原因。
在高风险订单支付时增加短信验证码,结合业务风控与发送状态判断验证进度,为交易确认提供更完整的依据。
在改址、签收确认等环节触发验证码,校验收件人手机号,减少号码填写错误带来的沟通成本。
CODES · 接入示例
传入国际格式手机号、模板和验证码参数,即可发起国际验证码发送请求。
在控制台生成 AccessKey ID 与 Secret
审核通过后使用模板编号和对应变量
通过请求编号跟进逐号码状态与费用
# 在服务端配置 SMS_API_URL、SMS_ACCESS_KEY_ID 和 SMS_SECRET
# SMS_API_URL 为部署环境的 /sms-api/ 完整地址
curl -X POST "$SMS_API_URL?action=sms.message.send&accessKeyId=$SMS_ACCESS_KEY_ID" \
-H "X-Sms-Secret: $SMS_SECRET" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550123",
"templateId": "notify_login",
"templateData": { "CODE": "483920" },
"requestId": "login_unique_business_id"
}'
# 替换已审核的模板与变量;每个业务请求使用唯一 requestId
# 网络超时重试时保留原 requestId,并检查逐号码发送结果
// 仅在服务端运行,Secret 从环境变量读取
const url = new URL(process.env.SMS_API_URL)
url.searchParams.set('action', 'sms.message.send')
url.searchParams.set('accessKeyId', process.env.SMS_ACCESS_KEY_ID)
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Sms-Secret': process.env.SMS_SECRET,
'Content-Type': 'application/json',
},
body: JSON.stringify({
to: '+14155550123',
templateId: 'notify_login',
templateData: { CODE: '483920' },
requestId: 'login_unique_business_id',
}),
})
if (!response.ok) throw new Error('HTTP ' + response.status)
const result = await response.json()
// 检查业务响应与逐号码 status、errorCode;接受请求不等于送达
# 仅在服务端运行;依赖 requests
import os
import requests
response = requests.post(
os.environ['SMS_API_URL'],
params={
'action': 'sms.message.send',
'accessKeyId': os.environ['SMS_ACCESS_KEY_ID'],
},
headers={'X-Sms-Secret': os.environ['SMS_SECRET']},
json={
'to': '+14155550123',
'templateId': 'notify_login',
'templateData': {'CODE': '483920'},
'requestId': 'login_unique_business_id',
},
timeout=30,
)
response.raise_for_status()
result = response.json()
# 检查业务响应和逐号码状态,超时重试保留原 requestId
服务端接入 · 凭证从环境变量读取 · 详细参数见开发文档
不是。国际短信价格会根据目的地国家、运营商和通道政策变化。登录控制台可按目的地查询价格,实际费用以估价结果和账单记录为准。
支持逐号码查询提交、发送、送达和失败等状态。部分国家的回执颗粒度受当地运营商能力影响;请求被接受不代表短信已送达,应继续检查号码级状态。
获取接入方案,在控制台生成 AccessKey ID 和 Secret,准备已审核通过的模板,并确认目标国家已开放、账户余额充足,即可按开发文档接入。
需要。模板内容和变量需符合目的地及运营商的要求。建议在上线前完成模板审核,发送时使用已通过审核的模板编号和对应变量。
国际短信计费规则受通道和目的地政策影响。请结合号码级计费状态、实际消费和退款流水核对,最终以控制台账单和服务约定为准。
连接全球,从一条短信开始