什么是 WhatsApp OTP?用 WhatsApp 代替短信发送验证码

想象一下,您注册某个网站时手机上收到的那组六位数字。那就是 OTP,即一次性密码,通常就叫验证码。多年来,这些验证码都是通过短信发送的。然而,您的大多数客户查看 WhatsApp 的频率远高于查看短信。本文将解释什么是 WhatsApp OTP、它如何运作、在哪些方面优于短信,以及它的局限在哪里。我们会坦率地说明:它并不适用于所有企业或所有情况。
什么是 OTP?
OTP 是 one-time password(一次性密码)的缩写。系统生成一个简短的随机代码,发送到用户的手机号码,用户将其输入表单,系统检查该代码是否正确、是否仍在有效期内以及是否是首次使用。能够收到验证码,即证明接收者确实掌握该手机号码。
常见用途包括:
- 在注册表单中验证手机号码
- 免密码登录(手机号码加验证码)
- 找回密码
- 确认电子商务订单中的手机号码真实有效,尤其是货到付款的订单
- 为地址变更或付款确认等敏感操作增加第二步验证
WhatsApp OTP 如何运作?
其逻辑相同,改变的只是传递验证码的渠道。验证码以 WhatsApp 消息而非短信的形式送达。WapFlow OTP 以 REST API 的形式提供此功能,流程如下:
- 在 WapFlow 面板中,用二维码或配对码关联您自己的 WhatsApp 号码。
- 在面板中创建正式和测试两种 API 密钥。
- 您的网站收集用户的手机号码,并从您的服务器调用
/send。验证码会以 WhatsApp 消息的形式,从您关联的号码发送给用户。 - 用户输入验证码,您的网站通过调用
/verify进行检查。
验证码采用加密级随机数生成,且不以明文形式存储。长度可设置为 4 至 8 位,有效期可设置为 60 至 900 秒;默认情况下,验证码为六位数,有效期五分钟。每个验证码最多允许错误输入五次,已验证的验证码不能再次使用。技术细节请参阅 API 文档,我们的PHP、Node.js 与 Python 指南中有代码示例。
相较短信的优势
客户本来就打开着的应用
客户无需切换到其他消息应用即可阅读验证码;许多人全天都开着 WhatsApp。这可以缩短输入验证码所需的时间。
熟悉的发送者
验证码来自您自己的 WhatsApp 号码。客户看到的不是匿名的短号码,而是承载您企业身份的聊天。在消息模板中,您可以使用 {app}、{code} 和 {minutes} 变量来显示应用名称和有效期。
固定的月费
WapFlow OTP 没有按条收费。您可以发送的验证码数量取决于套餐的月度配额。套餐按月计费:1 个账号、5,000 个验证码为 249.99 TRY;2 个账号、15,000 个验证码为 449.99 TRY;3 个账号、30,000 个验证码为 649.99 TRY;5 个账号、60,000 个验证码为 999.99 TRY。最新价格请查看价格页面。如果您已经在使用 WapFlow 云端套餐,OTP 套餐可享受折扣;结算时会显示具体费率。
无需 Meta 审批或模板申请
WhatsApp 官方 Business API 需要企业认证和消息模板审批。WapFlow OTP 则不需要这些,因为它的运作方式不同:它将您自己的号码作为关联设备使用。下文将详细说明这意味着什么。
您应该了解的限制
如果只介绍一种方法的优点而不谈缺点,对您这位读者而言是不公平的。请牢记以下几点:
- 它不是 WhatsApp 官方 Business API。WapFlow OTP 通过关联设备(二维码)运行,与 WhatsApp 或 Meta 没有隶属关系。我们在WhatsApp Business API 还是网页自动化?一文中解释了两者的区别。
- 不保证送达。消息可能因 WhatsApp、号码或网络原因而无法送达。用户也可能根本没有 WhatsApp。
- 封号风险永远不为零。如果 WhatsApp 限制了该号码,验证码也会随之停止。每日限额和账号养号有助于降低这一风险;请参阅我们关于降低封号风险的文章。
- 关键操作需要备用渠道。对于付款确认或账号找回,请保留第二条路径,例如短信或电子邮件。
适合哪些人?
对于已经在 WhatsApp 上与客户沟通、并设有订单或预约流程的企业,它很有意义:中小型网上店铺、服务型企业、本地平台。如果您使用 WordPress 或 WooCommerce,可以通过插件在无需编写代码的情况下完成设置。如果您经营的是银行等受到严格监管的服务,则需要另行评估官方渠道和法律要求。
良好 OTP 流程的建议
- 在服务器上验证验证码。切勿把判断权交给浏览器;始终从您自己的服务器调用
/verify。 - 妥善保密 API 密钥。不要在浏览器、移动应用或任何公开代码中使用它。
- 为重新发送按钮设置冷却时间。如果用户不断点击“验证码没有收到”,您的配额就会白白耗尽;将按钮禁用 60 秒,可同时保护您的配额和号码。
- 保持错误提示友好。“验证码错误,还剩 3 次机会”之类的清晰提示,能引导用户再次尝试。
- 加入机器人防护。在公开注册表单上,验证码(CAPTCHA)或类似措施可以让恶意用户更难消耗您的配额。
关于隐私与同意的简短说明
验证码属于信息性消息,与用户自己发起的操作相关;它不是营销消息。因此,通常被视为事务性消息,无需商业消息的同意。但以下两条规则仍然重要:绝不要在验证码消息中加入广告或营销活动内容;并在您的隐私政策中说明,您仅将手机号码用于验证。本节不构成法律建议;具体情况请咨询您自己的顾问。
正式使用前
在 WapFlow OTP 中,测试密钥(以 wfo_test_ 开头)不发送消息,也不消耗配额;它会在 test_code 字段中返回验证码。请先用测试密钥试运行您的集成,正式上线时只需更换密钥。准备好后,可以查看 WapFlow OTP 页面中的套餐。
常见问题
WhatsApp OTP 能完全取代短信 OTP 吗?
并非在所有情况下都能。如果用户没有 WhatsApp,或消息没有送达,您就需要短信或电子邮件等备用方式。将两者结合使用是最稳妥的做法。
验证码从哪个号码发出?
从您在面板中关联的 WhatsApp 号码发出。如果您关联了多个号码,发送任务会轮流分配;如果某个号码无法发送,则尝试下一个。
手机号码应该如何填写?
应包含国家代码,且只写数字,例如 905321234567。以 0 开头的 11 位号码会被视为土耳其号码,并在前面加上 90。号码无效时,API 会返回错误。
同一个号码最多可以收到多少个验证码?
为防止滥用,同一号码每 60 秒最多接收 1 个验证码,每小时 5 个,每天 10 个。
它能与 Windows 应用一起使用吗?
不能。WapFlow OTP 是云端 API 服务,单独销售。它独立于 Windows 应用,您可以单独使用其中任何一个。


