你可以用每月 ¥136–340 的成本在 VPS 上自托管一个非官方 WhatsApp 网关——没有 Meta 按条消息收费,无需企业认证,没有模板审批延迟。Evolution API 和 MultiWA 通过 Docker Compose 为你提供多会话 WhatsApp,支持 REST 端点和按客户端分配 API 密钥。对于管理 5–50 个客户店铺的跨境电商代理机构来说,你只需构建一个网关,就能卖给所有客户。
为什么现在关注这个问题
WhatsApp 拥有 20 亿用户。在亚洲、拉丁美洲和非洲的大部分地区,它不仅仅是一个聊天应用——它是主要的销售渠道。跨境电商客户需要用葡萄牙语发送订单确认,用印地语发送配送更新,用阿拉伯语发送购物车挽回消息。他们需要从同一个后端完成这一切。
Meta 的官方 WhatsApp Business Platform 现在按已送达消息收费,价格因市场和消息类别而异;服务类消息免费,部分工具类回复也免费。对于一家拥有 20 个客户、发送大量工具类和营销类消息的代理机构来说,Meta 费用在 BSP 加价之前就可能迅速累积。
自托管将可变成本降为零。你唯一的开销就是 VPS。
这并非理论上的设想。Evolution API(截至 2026 年拥有 7,500+ GitHub 星标)自 2023 年起已在电商店铺、CRM 集成和聊天机器人平台的生产环境中运行。MultiWA 在此基础上增加了可视化自动化构建器和 AI 自动回复功能。两者都在 Docker 中运行。两者都支持从单台服务器管理多个 WhatsApp 会话。
你实际在构建什么
你并不是在构建 WhatsApp。你是在构建一个位于电商后端和 WhatsApp Web 会话之间的网关。
将以下 FlowZap Code 代码片段复制粘贴到你的 FlowZap 账户项目中即可可视化该图表。
clients { # eCommerce Clients
n1: rectangle label:"Client A Backend"
n1.handle(right) -> gateway.n2.handle(left) [label="API Key A"]
n5: rectangle label:"Client B Backend"
n5.handle(right) -> gateway.n2.handle(left) [label="API Key B"]
}
gateway { # WhatsApp Gateway Docker Host
n2: rectangle label:"Nginx Reverse Proxy"
n3: rectangle label:"Evolution API :8080"
n4: rectangle label:"PostgreSQL"
n6: rectangle label:"Redis Queue"
n2.handle(right) -> n3.handle(left)
n3.handle(bottom) -> n4.handle(top)
n3.handle(bottom) -> n6.handle(top)
n3.handle(right) -> wa.n7.handle(left) [label="Route to US session"]
n3.handle(right) -> wa.n8.handle(left) [label="Route to EU session"]
n3.handle(right) -> wa.n9.handle(left) [label="Route to CN session"]
n2.handle(left) -> clients.n1.handle(right) [label="Response"]
n2.handle(left) -> clients.n5.handle(right) [label="Response"]
}
wa { # WhatsApp Sessions
n7: rectangle label:"Session +1 (US)"
n8: rectangle label:"Session +33 (EU)"
n9: rectangle label:"Session +86 (CN)"
n7.handle(left) -> gateway.n3.handle(right) [label="Webhook"]
n8.handle(left) -> gateway.n3.handle(right) [label="Webhook"]
n9.handle(left) -> gateway.n3.handle(right) [label="Webhook"]
}
每个客户端获得一个限定在其 WhatsApp 会话范围内的 API 密钥。你的电商后端发起一个包含订单确认的 POST 请求。网关将其路由到正确的 WhatsApp 号码。客户的回复以 webhook 形式返回。无需 Meta Business Manager 或企业认证。没有按条消息的账单。
工具对比表
| 功能 | Evolution API | MultiWA | 官方 Cloud API |
|---|---|---|---|
| 成本 | 免费(仅 VPS 费用) | 免费(仅 VPS 费用) | 按已送达消息收费;价格因市场和类别而异 |
| 企业认证 | 不需要 | 不需要 | 强制要求 |
| 模板审批 | 不需要 | 不需要 | 外发消息必需 |
| 多会话 | 支持(无限实例) | 支持(无限配置文件) | 每个 WABA 有限制 |
| API 格式 | REST(Express.js) | REST(NestJS/Fastify) | REST(Graph API) |
| 自动化构建器 | 通过 n8n/Typebot 集成 | 内置拖拽式构建器 | 通过 Meta Business Suite |
| AI 自动回复 | 通过 OpenAI/Dify 集成 | 内置 RAG 知识库 | 通过 BSP 附加组件 |
| 数据库 | PostgreSQL / MySQL | PostgreSQL | Meta 托管 |
| 消息队列 | RabbitMQ、SQS、NATS | Redis + BullMQ | 不暴露 |
| 封号风险 | 有(非官方协议) | 有(非官方协议) | 无(官方) |
| 绿色认证徽章 | 无 | 无 | 有(认证后) |
| Docker 部署 | docker compose up -d | docker compose up -d | 不适用(SaaS) |
| GitHub 星标 | 7,500+ | 200+ | 不适用 |
| 许可证 | Apache 2.0 | MIT | 专有 |
部署:5 分钟 Docker Compose
这是 Evolution API 路径——经过最充分实战检验的选项。
前置条件
- 配备 2 GB RAM 的 VPS(Hetzner CX22 每月约¥32,Contabo 4 GB 每月约¥47)
- 已安装 Docker 和 Docker Compose
- 一个域名,其 DNS 指向你的 VPS(用于 webhook 回调)
第 1 步:克隆并配置
git clone https://github.com/evolution-foundation/evolution-api cd evolution-api cp .env.example .env
编辑 .env,填入你的值:
# 必需 AUTHENTICATION_API_KEY=your-32-char-random-hex-key # 数据库(生产环境推荐 PostgreSQL) DATABASE_ENABLED=true DATABASE_PROVIDER=postgresql DATABASE_CONNECTION_URI=postgresql://user:***@postgres:5432/evolution # Redis(用于队列) REDIS_ENABLED=true REDIS_URI=redis://redis:6379 # Webhook(你的电商后端监听地址) WEBHOOK_BASE_URL=https://your-ecommerce-backend.com/webhooks
第 2 步:启动
docker compose up -d
三个容器启动:evolution-api(端口 8080)、postgres 和 redis。
第 3 步:创建 WhatsApp 会话
curl -X POST http://localhost:8080/instance/create \ -H "apikey: your-32-char-random-key" \ -H "Content-Type: application/json" \ -d '{ "instanceName": "client-us-store", "token": "client-specific-token", "webhook": "https://client-a.com/whatsapp-webhook", "webhookByEvents": true }'
响应中包含一个二维码。在已注册客户业务号码的手机上使用 WhatsApp 扫描该二维码。会话建立。
第 4 步:发送消息
将以下 FlowZap Code 代码片段复制粘贴到你的 FlowZap 账户项目中即可可视化该图表。
clients { # eCommerce Client
n1: rectangle label:"Client Backend"
n1.handle(right) -> gateway.n2.handle(left) [label="POST /sendText"]
}
gateway { # WhatsApp Gateway
n2: rectangle label:"Nginx + Auth"
n3: rectangle label:"Evolution API"
n4: rectangle label:"PostgreSQL"
n2.handle(right) -> gateway.n3.handle(left)
n3.handle(bottom) -> gateway.n4.handle(top)
n2.handle(left) -> clients.n1.handle(right) [label="200 OK"]
n3.handle(right) -> wa.n5.handle(left) [label="Send msg"]
}
wa { # WhatsApp
n5: rectangle label:"WhatsApp Web"
n6: circle label:"Customer Phone"
n5.handle(right) -> wa.n6.handle(left)
n6.handle(left) -> wa.n5.handle(right)
n5.handle(left) -> gateway.n3.handle(right) [label="Webhook reply"]
}
curl -X POST http://localhost:8080/message/sendText/client-us-store \ -H "apikey: your-32-char-random-key" \ -H "Content-Type: application/json" \ -d '{ "number": "5511999999999", "text": "Your order #4872 has shipped. Track: https://track.client-a.com/4872" }'
你客户在巴西的顾客会收到一条来自店铺业务号码的 WhatsApp 消息。没有 Meta 费用。无需模板审批。唯一的成本就是 VPS。
提示: 在 .env 中将 WEBHOOK_BASE_URL 设置为你的电商后端。Evolution API 在每条收到的消息上触发 MESSAGES_UPSERT 事件。你的后端以 JSON POST 请求的形式接收客户回复。
跨境电商代理机构的多租户架构
这正是自托管胜于官方 API 的地方。使用 Meta,每个客户都需要各自的 Business Manager 账户、电话号码认证和模板审批——每个客户需要 2–4 周的官僚流程。
使用你的自托管网关:
将以下 FlowZap Code 代码片段复制粘贴到你的 FlowZap 账户项目中即可可视化该图表。
clients { # Client Stores
n1: rectangle label:"US Store (Shopify)"
n2: rectangle label:"BR Store (WooCommerce)"
n1.handle(right) -> gateway.n3.handle(left) [label="key_us"]
n2.handle(right) -> gateway.n3.handle(left) [label="key_br"]
}
gateway { # Gateway VPS
n3: rectangle label:"Nginx + Let's Encrypt"
n4: rectangle label:"Evolution API"
n5: rectangle label:"PostgreSQL"
n6: rectangle label:"Redis"
n3.handle(right) -> n4.handle(left)
n4.handle(bottom) -> n5.handle(top)
n4.handle(bottom) -> n6.handle(top)
n4.handle(right) -> wa.n7.handle(left) [label="Route to US session"]
n4.handle(right) -> wa.n8.handle(left) [label="Route to BR session"]
n4.handle(right) -> wa.n9.handle(left) [label="Route to IN session"]
n3.handle(left) -> clients.n1.handle(right) [label="Response"]
n3.handle(left) -> clients.n2.handle(right) [label="Response"]
}
wa { # WhatsApp Sessions per Country
n7: rectangle label:"+1 US Session"
n8: rectangle label:"+55 BR Session"
n9: rectangle label:"+91 IN Session"
n7.handle(left) -> gateway.n4.handle(right) [label="Webhook"]
n8.handle(left) -> gateway.n4.handle(right) [label="Webhook"]
n9.handle(left) -> gateway.n4.handle(right) [label="Webhook"]
}
客户设置时间:5 分钟。 生成一个 API 密钥,创建一个实例,扫描一个二维码。就这些。
每个客户看到的是: 一个位于 https://wa-gateway.yourdomain.com 的 REST 端点。他们用 API 密钥 POST {"number": "...", "text": "..."}。他们接收收到消息的 webhook。他们从不接触 WhatsApp 配置。
你销售的是: "每个店铺每月 ¥333——WhatsApp 消息不限量。"拥有 10 个客户时,你在每月约¥32的VPS上收入 ¥3,327/月。
提示: 使用按实例的 webhook。Evolution API 支持每个实例的 webhook 和 webhookByEvents。客户 A 的回复发送到 https://client-a.com/webhooks,客户 B 的回复发送到 https://client-b.com/webhooks。完全的客户隔离。
什么能行 vs. 什么会出问题
| ✅ 能行 | 原因 |
|---|---|
| 订单确认和配送更新 | 高流量、模板化、单向——非常适合自托管 |
| 购物车挽回私信 | 弃购 2 小时后发送消息。无需模板 |
| 配送照片确认 | Evolution API 支持图片、文档、音频、位置和联系人发送 |
| 每个客户多语言 | 每个客户的实例以其客户的语言发送消息 |
| 通过 API 密钥实现客户隔离 | 每个实例有自己的令牌。客户 A 看不到客户 B 的消息 |
| CI/CD 告警 | 从 GitHub Actions、Uptime Kuma、Grafana 向你的网关发送 POST 请求 |
| ❌ 会出问题 | 原因 |
|---|---|
| 高价值客户支持 | 非官方协议——会话可能断开。不适用于有 SLA 约束的对话 |
| 大规模营销群发 | WhatsApp 反垃圾机制会检测批量发送模式。号码会被封禁 |
| 金融交易 | 没有 Meta 合规认证。银行和支付处理商拒绝非官方 WhatsApp 集成 |
| 100% 正常运行时间保证 | 当 WhatsApp 更新其 Web 协议时,Baileys 库偶尔会崩溃。可能数小时停机 |
| 绿色认证品牌徽章 | 只有官方 Cloud API 提供认证企业徽章。自托管显示为普通 WhatsApp 用户 |
| WhatsApp 政策合规 | 违反 Meta 服务条款。如果被发现,电话号码会被封禁。代理机构必须权衡风险与成本节省 |
残酷的事实: 自托管 WhatsApp 违反了 Meta 的条款。Evolution API 和 MultiWA 利用了 WhatsApp Web 协议。Meta 可以——并且偶尔会——封禁号码。对于订单确认和配送更新(事务性、低投诉),封号很少见。对于营销群发和冷外联,封号几乎是必然的。
决策表:哪种方案适合哪种客户
| 客户画像 | 用自托管 | 用官方 API |
|---|---|---|
| D2C 品牌,每天 500 订单,需要确认 | ✅ 合适 | 过度配置 |
| 拥有 20 个小店铺的跨境代理机构 | ✅ 合适 | Meta 费用每月 $5K+ |
| 有 SLA、合规、审计要求的企业 | ❌ 不适合 | 强制要求 |
| 测试 WhatsApp 作为支持渠道的创业公司 | ✅ 合适 | 可后续迁移 |
| 银行、保险公司或受监管行业 | ❌ 不适合 | 唯一选择 |
| 需要认证绿色徽章的市场平台 | ❌ 不适合 | 信任所必需 |
自托管网关:生产环境逐步清单
1. VPS 选择
| 提供商 | 规格 | 价格 | 可支持会话数 |
|---|---|---|---|
| Hetzner CX22 | 2 vCPU、4 GB RAM、40 GB SSD | 约¥32/月 | 5–10 |
| Contabo VPS S | 4 vCPU、8 GB RAM、50 GB NVMe | 约¥47/月 | 10–25 |
| DigitalOcean Droplet | 2 vCPU、4 GB RAM | ¥163/月 | 5–10 |
| AWS Lightsail | 2 vCPU、4 GB RAM | ¥136/月 | 5–10 |
每个 WhatsApp 会话(基于 Baileys)使用约 150–250 MB RAM。一台 4 GB 服务器可以舒适地处理 10–15 个并发会话。
2. 域名和 SSL
# 将 DNS A 记录指向你的 VPS IP # 然后: apt install nginx certbot python3-certbot-nginx -y certbot --nginx -d wa-gateway.yourdomain.com
3. Nginx 反向代理
server {
listen 443 ssl;
server_name wa-gateway.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
4. 数据库备份
# Cron 任务:每日 PostgreSQL 转储到 S3 兼容存储 0 3 * * * pg_dump evolution | gzip > /backups/evolution-$(date +%Y%m%d).sql.gz
5. 监控
# Evolution API 暴露 /manager/status 端点 curl -s http://localhost:8080/manager/status | jq '.instances[] | {name, status}'
将此接入 Uptime Kuma 或 Grafana 以进行按实例健康检查。
6. 按客户入职脚本
#!/bin/bash # onboard-client.sh <client-name> <country-code> <webhook-url> INSTANCE_NAME=$1 COUNTRY=$2 WEBHOOK_URL=$3 # 创建实例 curl -s -X POST http://localhost:8080/instance/create \ -H "apikey: $EVOLUTION_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"instanceName\": \"$INSTANCE_NAME\", \"token\": \"$(openssl rand -hex 16)\", \"webhook\": \"$WEBHOOK_URL\", \"webhookByEvents\": true }" | jq '.' # 输出:待扫描的二维码 + 客户 API 令牌
按客户运行此脚本。总入职时间:5 分钟(含二维码扫描)。
什么时候 MultiWA 更有意义
Evolution API 是以 API 为先、面向开发者的选项。MultiWA 增加了对技术能力较弱客户的代理机构很重要的功能:
- 可视化自动化构建器: 拖拽式消息流程。客户无需编写"如果客户说 X,回复 Y"的代码。
- 带 RAG 的 AI 自动回复: 上传产品目录、配送政策、FAQ 文档。MultiWA 自动回答常见问题。
- 管理仪表盘: Next.js Web 界面,你——或你的客户——可以在其中监控会话、阅读对话和配置自动化。
MultiWA 的 docker-compose.production.yml 与 Evolution API 的几乎相同。权衡之处:较年轻的项目(200+ 星标 vs. 7,500+),社区较小,活动部件更多(Next.js、BullMQ worker、PostgreSQL、Redis)。
经验法则: Evolution API 适用于 5+ 个技术客户,你在电商后端中构建自动化。MultiWA 适用于 1–4 个想要仪表盘来自行管理事务的客户。
独立创业者的角度:构建一次,卖给多人
你是一个开发者。你构建一次这个网关——Docker Compose、Nginx、Evolution API、PostgreSQL、Redis、备份脚本。一个周末的工作量。
然后你将其作为托管服务销售:
| 方案 | 价格 | 包含内容 |
|---|---|---|
| 入门版 | ¥333/月 | 1 个 WhatsApp 会话、每月 5,000 条消息、webhook 集成 |
| 成长版 | ¥673/月 | 3 个会话、每月 25,000 条消息、自定义模板 |
| 代理版 | ¥1,692/月 | 10 个会话、不限消息量、白标仪表盘、优先支持 |
10 个代理版客户:在一台每月约¥32–47的VPS上实现 ¥16,917 MRR。
你实际在销售的是: "你在巴西、印度和尼日利亚的客户在 WhatsApp 上收到订单更新。你支付固定费用。没有 Meta 官僚流程。没有按条消息计价。我们处理网关。"
这与代理机构用于电子邮件(Mailgun、SendGrid)和短信(Twilio)的模式相同。WhatsApp 只是下一个渠道——而自托管使其在小规模下也能盈利。
将以下 FlowZap Code 代码片段复制粘贴到你的 FlowZap 账户项目中即可可视化该图表。
client { # Client Profile
n1: circle label:"Need WhatsApp channel"
n2: diamond label:"Need verified badge, compliance, or SLA?"
n1.handle(right) -> n2.handle(left)
n2.handle(right) -> constraints.n5.handle(left) [label="Yes"]
n2.handle(bottom) -> operator.n3.handle(top) [label="No"]
}
operator { # FlowZap Operator
n3: diamond label:"Expected Meta spend > $100/mo?"
n4: diamond label:"Client wants dashboard and no-code automations?"
n3.handle(top) -> client.n2.handle(bottom) [label="Context received"]
n3.handle(right) -> constraints.n6.handle(left) [label="No"]
n3.handle(bottom) -> n4.handle(top) [label="Yes"]
}
constraints { # Constraints
n5: rectangle label:"Official path required"
n6: rectangle label:"Official API still acceptable"
n5.handle(left) -> options.n9.handle(top) [label="Recommend"]
n6.handle(bottom) -> options.n9.handle(left) [label="Recommend"]
}
options { # Recommended Stack
n7: rectangle label:"Evolution API on Docker"
n8: rectangle label:"MultiWA on Docker"
n9: rectangle label:"Official Meta Cloud API"
n10: rectangle label:"API-first, developer-operated"
n11: rectangle label:"Dashboard, RAG, automations"
n12: circle label:"Chosen path"
n4.handle(right) -> n8.handle(left) [label="Yes"]
n4.handle(bottom) -> n7.handle(top) [label="No"]
n7.handle(right) -> n10.handle(left)
n8.handle(right) -> n11.handle(left)
n9.handle(bottom) -> n12.handle(top) [label="Compliance path"]
n10.handle(bottom) -> n12.handle(left) [label="Lean self-hosted path"]
n11.handle(bottom) -> n12.handle(right) [label="Managed self-serve path"]
}
规则: 如果客户通过 Meta 的月度 WhatsApp 费用超过 ¥679,自托管可以为他们省钱。如果他们需要绿色徽章认证、合规或保证的正常运行时间,请引导他们使用官方 API。对于其他一切——订单确认、配送更新、购物车挽回——你的自托管网关是正确的工具。
总结
- Docker 中的 Evolution API 让你在 5 分钟内拥有一个生产级 WhatsApp 网关。REST API、多会话、PostgreSQL 支持、webhook 就绪。零按条消息成本。
- 自托管每月节省 ¥3,397–54,352,适用于拥有 10+ 个客户、跨境发送事务性 WhatsApp 消息的代理机构。
- 通过 API 密钥实现客户隔离意味着一个网关服务 20 个店铺——每个店铺有自己的 WhatsApp 号码、webhook 端点和消息队列。
- 风险是真实存在的: 非官方 WhatsApp 协议。号码可能被封禁。不要将其用于冷外联、大规模营销或受监管行业。将其用于订单更新和配送通知——低投诉,高价值。
构建一次网关。卖给你组合中的每个跨境电商客户。
参考资料
- Evolution API GitHub — 7,500+ 星标,Apache 2.0
- Evolution API 文档
- Evolution API Docker 镜像
- Evolution API 与官方 WhatsApp API 对比
- MultiWA GitHub — MIT 许可证,可视化自动化
- MultiWA 架构深入解析
- Baileys 库(WhatsApp Web 协议)
- WhatsApp Cloud API 官方文档
- WhatsApp Business API 定价
- WhatsApp Business API 设置指南(2026)
- WhatsApp API 电商应用(2026)
- Reddit: whatsapp-web.js vs 官方 API vs Baileys
- Evolution API 发布页
- Senate.sh: 自托管 Evolution API 指南
- OpenWA: 免费自托管 WhatsApp 技术栈
