跳转到正文
OmniChannels.ai

WhatsApp验证码与短信验证码:成本、送达与回退

WhatsApp验证码与短信验证码对比:成本模型、送达率、用户体验、身份验证模板、WhatsApp到短信的回退设计,以及防刷与反欺诈控制,帮助出海产品选对验证渠道。

更新于 10 分钟阅读

作者: OmniChannels.ai Editorial Team · 审阅: BroadNet Messaging Solutions Team

WhatsApp

简短回答

当用户活跃在WhatsApp上,并且您希望使用复制验证码、一键或零点击体验的身份验证模板时,请使用WhatsApp验证码;当需要触达没有应用或网络数据的任何手机时,请使用短信验证码。大多数生产系统会先通过WhatsApp发送验证码,短暂等待后再回退到短信。成本因国家和按消息定价而异,请用您自己的发送量对两者分别测算。

本页内容
  1. WhatsApp验证码和短信验证码有什么区别?
  2. 成本模型有何不同?
  3. 哪个送达更好、用户体验更好?
  4. 如何通过API创建身份验证模板?
  5. 如何在每个渠道上发送验证码?
  6. 如何构建WhatsApp优先、短信回退的投递?
  7. 欺诈和滥用有何不同?
  8. 我应当选择哪个?
  9. 实战示例:海湾地区的类网约车应用
  10. 常见错误有哪些?
  11. OmniChannels.ai 如何提供帮助

要点速览

  • WhatsApp验证码使用已获批的身份验证模板,由Meta按送达条数收费;短信验证码则按线路和目的地、依分段计费,因此应按国家比较,而不是笼统比较。
  • 短信可以触达任何有信号的手机,而WhatsApp要求用户安装了WhatsApp并有数据连接。
  • 身份验证模板支持复制验证码、一键和零点击三种投递方式;API将其暴露为deliveryMode,取值为COPY_CODE、ONE_TAP或ZERO_TAP。
  • WhatsApp优先、短信回退的流程能在成本与触达之间取得平衡,但必须限制回退次数,以免消息翻倍并招致滥用。
  • 两种渠道都是流量虚增欺诈的目标,所以请按号码和按IP限制频率,并在发送前验证号码。

本指南面向选择如何投递一次性验证码(OTP)的产品与工程团队:通过WhatsApp、通过短信,还是两者兼用。内容比较成本模型、触达范围、用户体验和欺诈风险,说明身份验证模板,并展示如何构建WhatsApp优先、短信回退的流程。关于更广泛的安全全景,请参阅我们的验证码与身份验证消息指南。

WhatsApp验证码和短信验证码有什么区别?

短信验证码是通过移动网络,把验证码作为短信发送到任何手机号码。WhatsApp验证码则是通过互联网,把验证码作为身份验证模板消息发送到用户的WhatsApp账号。两者都投递一个短时效的验证码,由用户输入或点击来确认号码。

WhatsApp验证码 短信验证码
触达范围 有WhatsApp并有数据连接的用户 任何有移动信号的手机
消息类型 已获批的身份验证模板 纯文本消息
发送方身份 您已验证的WhatsApp企业资料 发件人ID或号码,受各国规则约束
用户体验 复制验证码、一键自动填充或零点击 手动输入,或在支持的系统上自动填充
计费基础 按送达的身份验证消息、依市场计费(Meta) 按分段、依线路和目的地计费
审核 模板由Meta审核 许多国家需注册发件人ID
漫游与无数据 需要联网 无数据也能使用
状态 SUBMITTED、SENT、DELIVERED、READ、FAILED、REJECTED SUBMITTED、SENT、DELIVERED、FAILED、REJECTED

两种渠道都没有普遍的优劣。正确的选择取决于您的用户、目的地和风险。

成本模型有何不同?

请按国家和每次成功验证来比较,而不是按每条消息。Meta在WhatsApp Business平台上按送达的消息,依模板类别和收件人所在市场收费,身份验证是自成一类的类别。短信成本则取决于目的地、线路和分段数。

会改变算术结果的几点:

  • **分段。**阿拉伯语短信属于Unicode,所以措辞较长的验证码可能跨越两个分段(根据3GPP TS 23.040,单条70个字符,拆分后每段67个)。请让验证码文案保持简短。
  • **失败的尝试。**Meta对送达的消息收费,而短信计费取决于您的线路条款。请询问失败时如何计费。
  • **回退量。**如果10%的WhatsApp发送回退到了短信,那么这些情况下您要为两者都付费。
  • **服务商费用。**您的服务商可能加收费用。我们的WhatsApp按Meta的费率收取、不加价,短信则按目的地定价。

不要把博客里的价格填进商业论证。请使用各国WhatsApp价格、短信价格页面、WhatsApp价格计算器和成本估算工具,然后在Meta现行费率表中确认,因为Meta会按计划调整费率。

哪个送达更好、用户体验更好?

短信触达的人更多;WhatsApp在可用时感觉更快。短信只需要信号,而WhatsApp需要应用、该号码上的账号和数据。两者的送达都取决于运营商、线路和过滤,我们不作普遍的速度声明。

当模板支持时,WhatsApp上的用户体验更好:

  • **复制验证码:**用户点击一个按钮即可复制验证码。
  • **一键自动填充:**点击一次后,验证码自动填入您的应用。
  • **零点击:**在设备支持的情况下,无需点击即可自动填入验证码。

在短信上,自动填充取决于操作系统以及消息的格式,因此请在真实设备上测试。对于阿拉伯语用户,请确保验证码在从右到左的文本中清晰可读。在您的产品中承诺零点击之前,请查看Meta的身份验证模板文档,了解当前的设备和应用要求。

如何通过API创建身份验证模板?

以类别AUTHENTICATION创建,并选择投递方式。在我们的API中,POST /whatsapp/template接受multipart字段;以下是与验证码相关的重要字段。

字段 值
name 小写的模板名称,在您的账户中唯一
languageType 语言代码,例如en_US或ar
category AUTHENTICATION
templateType OTP
deliveryMode COPY_CODE、ONE_TAP或ZERO_TAP
codeExpirationMinutes 向用户显示的有效期(可选)

新模板在Meta批准之前一直处于PENDING状态。身份验证模板的结构由Meta固定,因此首个模板的其余字段,请在WhatsApp API参考中并与我们的团队确认。审核是Meta的决定,我们不对时间作出承诺。

如何在每个渠道上发送验证码?

在WhatsApp上,发送已获批的模板,并把验证码作为正文变量。对于复制验证码按钮,请在buttonsTemplateVariable中传入相同的验证码。

curl -X POST https://api.broadnet.me/whatsapp/message/sendbulk \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -F batchId=0 \
  -F destinationNo=971500000000 \
  -F messageType=TEMPLATE \
  -F templateName=login_code \
  -F templateLanguage=en_US \
  -F bodyTemplateVariables=482913 \
  -F buttonsTemplateVariable=482913

这里的login_code是您自己已获批身份验证模板的占位符。在短信上,请用JSON调用POST /sms/sendSms:

curl -X POST https://api.broadnet.me/sms/sendSms \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "senderId": "OmniDemo",
    "destinationNumber": "971500000000",
    "message": "Your OmniDemo code is 482913",
    "messageType": "TEXT"
  }'

请注意区别:WhatsApp使用multipart表单数据并返回batchId;短信使用JSON并以纯文本返回消息ID。完整示例见我们关于通过API发送WhatsApp的指南和通过API发送短信。

如何构建WhatsApp优先、短信回退的投递?

先在WhatsApp上发送,等待状态,必要时再通过短信发送一次。我们的状态在各渠道之间是统一的,所以同一个处理程序可以同时驱动两者。

  1. 在服务器上**生成验证码,**只存储带有效期的哈希,并限制尝试次数。
  2. **发送WhatsApp模板,**并记录batchId和您自己的操作ID。
  3. 根据用户的耐心,在您选定的时间窗口内,等待Webhook上的DELIVERED。
  4. **如果FAILED、REJECTED或未能及时送达,**让第一个验证码失效,生成新的验证码并发送短信。
  5. 按号码和按会话限制回退次数。
  6. **记录哪个渠道成功,**以便按国家调整顺序。

超时后避免盲目重试,因为该API没有幂等键;请按错误与限制中所述,先检查状态再重发。渠道顺序在OmniChannels.ai中按使用场景配置,总体设计见我们的渠道回退策略。关于Webhook处理,请参阅Webhook指南。语音验证码是另一个回退步骤;请参阅语音验证码指南,语音价格请联系销售。

欺诈和滥用有何不同?

两种渠道都会招来滥用,所以请在上线前建立控制措施。短信有一个众所周知的问题:攻击者向他们从中获利的号码触发验证码,虚增您的流量。WhatsApp也并非免疫,因为任何按请求发送消息的端点,都可能被滥用来产生成本或骚扰某个号码。

适用于两者的控制措施:

  • 按手机号码、IP地址、设备和账号限制验证码请求的频率。
  • 发送前**验证号码;**请参阅HLR查询。
  • **限制回退,**使攻击者无法让每次请求触发两条消息。
  • **观察转化:**请求很多而完成验证的很少,是一个警告信号。
  • 屏蔽您不服务的目的地。
  • **短有效期和有限的尝试次数,**且不重复使用验证码。

请阅读短信泵送欺诈防范,并使用欺诈计算器估算风险敞口。根据NIST SP 800-63B-4,带外验证码是一种有已知局限的认证器类型,因此对付款或账户找回等高风险操作,请使用更强的方法。

我应当选择哪个?

按受众和风险决定,然后测试。

情形 建议的做法
用户主要在WhatsApp上,应用型产品 WhatsApp优先,短信回退
混合受众,许多人没有数据 短信优先或仅短信
高风险交易 验证码加更强的验证因素;不要单独依赖任何一种
漫游或数据条件差的用户 短信
需要应用内一键自动填充 WhatsApp身份验证模板
某个市场需严格控制成本 针对该国对两者进行比较

实战示例:海湾地区的类网约车应用

“Rafiq Rides”(虚构)在阿联酋、沙特阿拉伯和埃及验证新的司机和乘客账号。

  • **设计:**首选带复制验证码的WhatsApp身份验证模板;短暂等待仍没有DELIVERED状态时,回退到短信。
  • **控制:**每个号码每小时三次验证码请求、每个IP的限制、首次发送前的号码验证,以及每个会话一次回退。
  • **衡量:**短时间内完成的验证,按渠道和国家拆分;失败和回退的占比。
  • **调优:**在某个WhatsApp送达较弱的国家,团队把顺序调换为短信优先。
  • **成本:**按国家用价格工具测算,并每月对照实际发送量复查。

常见错误有哪些?

  • **比较一个全球价格,**而不是按国家和每个已验证用户比较。
  • **同时通过两个渠道发送,**使成本和被滥用面翻倍。
  • 无限制的重新发送按钮。
  • 回退后复用旧的验证码。
  • 记录验证码或把它放在URL中发送。
  • WhatsApp渠道没有用户同意记录。
  • **到处承诺零点击。**请核对当前的设备支持情况。
  • **局限:**本指南描述的是机制。送达、成本和设备支持因国家、线路和Meta的规则而异,应在您的市场中测试。

OmniChannels.ai 如何提供帮助

OmniChannels.ai在一个API中涵盖这两个渠道:作为Meta官方Business Solution Provider的WhatsApp身份验证模板(一键、零点击和复制验证码),以及通过BroadNet运营商直连的A2P短信,渠道回退按使用场景配置,状态统一为一种Webhook格式。我们的团队与您一起准备发件人ID和WhatsApp注册;审批仍由Meta和监管机构决定。请查看验证码解决方案、验证码短信API和开发者文档。

常见问题

WhatsApp验证码比短信验证码便宜吗?

取决于目的国和您的服务商。Meta按送达条数、依收件人市场对身份验证模板收费,而短信则按线路上的分段计费。在有些市场其中一个更便宜,在另一些市场则相反。不要依赖笼统的说法:请用我们的价格工具和您的真实发送量对两者分别测算。

WhatsApp验证码比短信验证码更安全吗?

两者单独都不是强认证手段。WhatsApp验证码避免了消息本身遭遇短信网络SIM卡劫持(SIM-swap)的风险,但账号仍可能被接管,用户也可能被钓鱼而分享验证码。两者都是发送到某个渠道的一次性验证码。对高风险操作,请使用较短的有效期、有限的尝试次数和更强的验证因素。

什么是WhatsApp身份验证模板?

它是属于Meta身份验证类别的模板,仅用于一次性验证码。投递方式可以是复制验证码、一键自动填充或零点击。模板需要Meta审核,且结构固定。在我们的API中,您以AUTHENTICATION类别创建模板,并将deliveryMode设为COPY_CODE、ONE_TAP或ZERO_TAP。

什么时候应当从WhatsApp回退到短信?

当WhatsApp消息失败、被拒绝,或在您设定的短暂等待时间内(例如用户合理愿意等待的时间)没有达到已送达状态时。请限制每个号码和每个会话的回退次数,在发送第二个验证码时让第一个验证码失效,并记录哪个渠道成功。

验证码消息需要事先同意吗?

WhatsApp需要,因为Meta的政策要求用户同意接收来自企业的消息。通常用户提供号码并请求验证码,这是一个明确的行为,而且您的条款和隐私声明应当说明所用渠道。短信规则因国家而异,请核对您的目的地的发件人ID和用户同意要求。

验证码可以同时通过两个渠道发送吗?

可以,但很少明智。同一个验证码发送两次会使成本翻倍、让用户困惑,并扩大被滥用的范围。更好的做法是依次投递:先试首选渠道,等待状态,然后只回退一次。如果有数据,请按用户偏好或国家数据选择渠道。

资料来源

  1. WhatsApp Business平台定价——Meta for Developers
  2. WhatsApp Business消息政策
  3. NIST SP 800-63B-4:数字身份指南,认证与认证器管理
  4. 3GPP TS 23.040:短消息服务(SMS)技术实现