哪些接口请求可以通过 API 返回瑞士验证码?
瑞士 OTP API 与其他所有国家使用同一套精简接口,国家 ID 为 ch。请使用在开发者控制台创建、前缀为 or_live_ 的 Bearer 密钥进行认证;一个账户最多可持有 10 个密钥。
- 通过
GET /api/v1/services和GET /api/v1/countries解析 ID,并在多次运行之间缓存。 - 查询
GET /api/v1/prices?country=ch&service=<id>。响应包含当前价格以及该线路此刻是否开放。 - 发送
POST /api/v1/activations,请求体为{"service": "whatsapp", "country": "ch"},或换成你的测试所涉及的任何服务。请保存返回的激活 ID。 - 把该 +41 号码填入你自己产品的手机号字段。
- 通过
GET /api/v1/activations/{id}或 Webhook 读取结果;需要干净地中止时调用POST /api/v1/activations/{id}/cancel。
GET /api/v1/balance 适合放在测试套件的准备步骤中。每个账户每分钟 300 次请求的上限,足以让多个并发任务以较宽松的间隔轮询。接口参考见 文档。
+41 激活该选轮询还是 Webhook?
轮询能让快速脚本保持简单。一旦测试并行运行,Webhook 就更有优势,因为在发往苏黎世的短信还在途中时,不需要有任何进程空转等待。
OTP Route 最多允许注册五个端点;请让每个端点订阅 activation.sms_received、activation.expired 和 activation.cancelled。在信任每次推送之前先做验证:取出 X-OTPRoute-Signature 中的 t 和 v1 部分,使用端点密钥对 "<t>.<raw body>" 计算 HMAC-SHA256,以恒定时间比较,并拒绝超出较短容差的时间戳。以激活 ID 作为处理的键,这样重试的推送就是无害的空操作。
关于签名校验的更深入讲解,请参阅 使用 HMAC 保护 OTP Webhook。
瑞士号码在你的数据库里应该是什么样子?
在国内,瑞士号码以长途冠码 0 开头,例如手机号写作 079 123 45 67。国际格式中这个零会消失:E.164 形式为 +41 79 123 45 67,国家代码后是九位数字。手机号段位于 07x 区间。请存储规范的 +41… 字符串,仅在显示时才格式化,否则当一处写成 079、另一处写成 +4179 时,去重和查询就会出问题。
语言是瑞士的另一个特点。德语、法语、意大利语和罗曼什语都是国家语言,验证短信可能以前三种中的任何一种到达,具体取决于发送方如何处理区域设置,也有不少应用直接回退到英语。如果你的产品按地区做本地化,用真实的 +41 验证码可以低成本地确认触发的是正确的模板。
团队在这里测试,常见情形包括:在瑞士市场推出金融科技或电商产品之前;为日内瓦或巴塞尔管理企业账户的员工提供支持;或验证同样涉及 列支敦士登 的跨境流程,该国使用自己的 +423 国家代码。
可以对瑞士验证号码验证哪些服务
ch 的当前快照列出了 Google (Gmail & YouTube)、Microsoft & Outlook、LinkedIn、WhatsApp、Telegram、Signal、Uber、Airbnb、Amazon、eBay、Netflix、Discord、ChatGPT (OpenAI) 和 Claude 等。瑞士在 OTP Gateway 上共有超过 1,700 项服务。
由于可用性会在一天中变化,请把这份清单当作起点,并在运行时查询实时数据。先检查价格、在线路关闭时将测试标记为跳过的测试框架,其报告会比盲目重试的干净得多。
瑞士激活一直为空时如何排查
当 +41 号码始终收不到任何内容时,请先按下面的步骤排查,再去动你的代码:
- 给完整的 20 分钟窗口一个机会;有些平台会让外发短信排队。
- 检查该服务是否拒绝虚拟号码。不少服务会拒绝,而这正是自动退款机制存在的原因。
- 稍等片刻后重试,或改用另一条服务线路,不要在紧凑循环中反复下单。
- 取消被放弃的激活,让款项立即退回。
OTP 的国家路由 一文解释了为什么同一个应用在不同国家线路上的表现会有所不同。
有瑞士的长期号码吗?
没有自助开通的。对于瑞士,OTP Route 仅通过 OTP Gateway 提供一次性号码。
专属虚拟号码(续费期间由你持续使用的号码)仅限美国和加拿大,每月 $1.95 起。如果你确实需要一个长期的瑞士号码,请发邮件至 [email protected] 并说明用途;能否办到取决于当地规定,无法提前承诺。
瑞士 OTP 路由的钱包、发票与沙盒
你通过同一个预付的美元钱包按用量付费,没有月费,也无需选择套餐。可用银行卡或 USDT/USDC 充值,每次充值都会通过电子邮件发送 PDF 发票,方便以法郎对账的瑞士实体保持账目清晰。
做集成开发时,可以请求为开发账户开启沙盒模式。它会返回模拟的号码和验证码,因此无需花费钱包资金就能测试整条短信验证 API 路径。真实激活只用于你自己的产品和账户,并遵守各服务的条款以及 OTP Route 的《可接受使用政策》。QA 测试方案 页面介绍了团队如何把它纳入发布检查。
常见问题
瑞士在 API 中使用什么国家 ID?
瑞士是 ch。凡是需要国家的地方,包括激活请求体,瑞士请求都携带这个两位字母的值。
没有瑞士 SIM 卡,能检查瑞士的登录流程吗?
可以。OTP Gateway 提供的 +41 测试号码会接收验证码,你随后可在控制台或通过 API 读取。
保存瑞士手机号时应该保留开头的 0 吗?
不应该。0 是国内长途冠码;请存储以 +41 开头、后跟九位数字的 E.164 格式。
瑞士的验证短信会用什么语言?
取决于发送方:德语、法语、意大利语或英语都很常见。请用数字模式提取验证码,而不是依赖固定措辞。
接收瑞士短信 OTP 要多少钱?
每个验证码 $0.20 起,各服务的具体价格会在下单前由 GET /api/v1/prices 返回。
如果没收到验证码,我的钱会怎样?
窗口结束或你取消激活时,款项会自动退回你的钱包。
瑞士线路是否涵盖列支敦士登?
不涵盖。列支敦士登有自己的 +423 国家代码,并在国家列表中有独立页面,请单独下单。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。