You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义WhatsApp API集成:无bug验证码生成与发送端点技术问询

WhatsApp验证码集成:无bug实现方案

一、生成无bug的随机验证码

要避开验证码生成的常见坑,核心是用加密安全的随机数生成器(别用普通伪随机函数,比如Python的random模块),同时严格控制验证码的格式和有效性:

核心规则

  • 优先用纯数字验证码(用户输入更便捷,避免字符混淆),位数建议6位(平衡安全性和易用性)
  • 排除全相同数字、连续递增/递减数字(比如000000、123456)这类易被猜测的组合
  • 绑定验证码到用户手机号+有效期(建议5-10分钟),过期自动失效

代码示例

Python

用secrets模块(加密安全):

import secrets
import string

def generate_verification_code(length=6):
    digits = string.digits
    while True:
        code = ''.join(secrets.choice(digits) for _ in range(length))
        # 排除不安全组合
        if not (all(c == code[0] for c in code) or code in ['123456', '654321', '012345', '543210']):
            return code

JavaScript(Node.js)

用crypto模块:

const crypto = require('crypto');

function generateVerificationCode(length = 6) {
    let code;
    do {
        const buffer = crypto.randomBytes(4);
        code = buffer.readUInt32BE(0).toString().slice(-length);
        // 补全位数+排除不安全组合
    } while (code.length < length || /^(\d)\1+$/.test(code) || ['123456', '654321'].includes(code));
    return code;
}

二、WhatsApp Business API发送验证码的端点与调用

你需要使用官方的消息发送端点,核心参数和调用方式如下:

核心端点

POST https://your-whatsapp-api-endpoint/v1/messages
(注:如果用Meta Cloud API,端点为https://graph.facebook.com/v18.0/{phone-number-id}/messages,phone-number-id是你的WhatsApp商业号ID)

请求头

必须包含:

  • Authorization: Bearer {your-access-token}
  • Content-Type: application/json

请求体示例

{
    "messaging_product": "whatsapp",
    "to": "+8613xxxxxxxxx", // 用户的WhatsApp号码,必须带国际区号
    "type": "text",
    "text": {
        "body": "您的验证码是:123456,5分钟内有效,请勿泄露给他人。"
    }
}

关键注意事项

  • 发送号码必须是你已验证的WhatsApp商业号(在Meta Business Manager中完成配置)
  • 消息内容必须符合WhatsApp政策:不能含营销内容,明确说明是验证码用途
  • 处理API错误:比如400 Bad Request(号码格式错误)、429 Too Many Requests(限流)、500 Internal Server Error(服务端故障),需做指数退避重试

三、最优无bug实现方案

  1. 验证码存储:用Redis(带自动过期时间)或数据库(加expires_at字段)存储验证码、用户手机号、生成时间,验证时先检查是否过期
  2. 发送限流:同一手机号1分钟内仅允许发送1次验证码,避免恶意请求和API限流
  3. 错误处理:
    • 捕获API发送失败的情况,给用户提示“发送失败,请稍后重试”
    • 记录详细日志:发送时间、用户号码、验证码、API返回结果,方便排查问题
  4. 验证逻辑:用户输入验证码后,先检查是否存在、是否过期,验证成功后立即标记为已使用(防止重复验证)
  5. 测试覆盖:重点测试边界情况:
    • 无效的用户号码(格式错误)
    • 验证码过期后的验证请求
    • 短时间内重复发送验证码
    • API限流时的重试机制

内容的提问来源于stack exchange,提问作者Code_Sphinx_TSK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:45:57