Real Make IA
serverless stripe api whatsapp webhook cloudflare pages
Publicado em 14/10/2026 · laboratório de engenharia helpsecs ltda

Stripe no WhatsApp sem VPS: Como Conectamos Alertas de Vendas em Tempo Real a R$ 0/mês

Para quem vende produtos digitais de ticket acessível (como o nosso pacote de R$ 27,00), pagar R$ 97/mês em plataformas de automação no-code ou manter uma VPS ligada 24/7 destrói a margem de lucro. Desenvolvemos uma arquitetura serverless pura, com múltiplos adaptadores e código aberto no GitHub.

O Dilema da Automação de Vendas para Tickets Baixos

Todo vendedor quer a mesma coisa: ouvir o celular tocar no WhatsApp assim que uma venda cai no Stripe. No entanto, o ecossistema tradicional empurra soluções desproporcionais:

Nossa resposta foi construir um endpoint serverless na borda da Cloudflare Pages Functions. Custo de servidor: R$ 0,00. Latência de resposta: menos de 150ms.

REPOSITÓRIO NO GITHUB

📦 Repositório Aberto: stripe-whatsapp-cloudflare-serverless

Liberamos a arquitetura completa sob licença MIT para a comunidade de criadores e desenvolvedores. Clone, configure suas variáveis e faça o deploy em 2 minutos.

git clone https://github.com/helpsecs-cmd/stripe-whatsapp-cloudflare-serverless.git
⭐ Ver Código Aberto no GitHub (helpsecs-cmd)

A "Armadilha do Pix" no Stripe (O que quase ninguém conta)

Quando um comprador clica no Stripe Checkout e seleciona a opção Pix, o Stripe emite o evento checkout.session.completed assim que a tela com o QR Code é exibida. Porém, o status vem como payment_status: "unpaid"!

Bots e tutoriais genéricos disparam o alerta imediatamente, fazendo o vendedor comemorar uma venda que o cliente muitas vezes desistiu e fechou a aba.

Nossa implementação implementa a Doutrina do Pix:

  1. Filtra estritamente se payment_status === "paid". Se não estiver pago, descarta o alerta falso.
  2. Escuta também o evento assíncrono checkout.session.async_payment_succeeded — quando o cliente finalmente paga o Pix minutos depois no banco, o webhook recebe o aviso e o WhatsApp apita com dinheiro real confirmado.

O Padrão Multi-Adaptador: Flexibilidade Absoluta

Em vez de amarrar a função a uma única ferramenta, criamos um motor agnóstico que despacha para até 4 provedores conforme as variáveis configuradas:

OPÇÃO 1

CallMeBot API (R$ 0 / Zero Servidor)

Ideal para criadores individuais. Você ativa uma chave gratuita no WhatsApp em 30 segundos e a Cloudflare Pages faz um disparo direto para o seu número, sem precisar de nenhum servidor ligado.

OPÇÃO 2

Evolution API (Self-Hosted / Docker)

Para quem já opera uma instância própria da Evolution API em VPS. A função faz o POST direto na rota /message/sendText com header autenticado.

OPÇÃO 3

Z-API & Webhook Genérico (n8n / Make)

Se você já tem esteiras estruturadas no n8n ou prefere a Z-API, basta preencher a URL do seu webhook e o payload estruturado é entregue em milissegundos.

A Falha Oculta dos Tutoriais: Validação Criptográfica HMAC-SHA256 Anti-Spoofing

Mais de 90% dos tutoriais que você encontra na internet cometem um erro gravíssimo de arquitetura: eles criam a rota do webhook e processam qualquer JSON recebido às cegas. O resultado? Qualquer pessoa na internet pode abrir o Postman ou um terminal curl e enviar um POST forjado com {"type": "checkout.session.completed", "data": {"object": {"payment_status": "paid"}}} e fazer o seu WhatsApp apitar com vendas falsas!

Para selar essa brecha, implementamos a tríplice barreira criptográfica do Stripe usando a Web Crypto API nativa do Cloudflare Edge (sem bibliotecas pesadas de terceiros):

1. Assinatura Digital HMAC-SHA256

Cada evento enviado pelo Stripe inclui o cabeçalho Stripe-Signature. Nossa função calcula o HMAC do corpo bruto utilizando o seu STRIPE_WEBHOOK_SECRET (whsec_...) e compara em tempo constante (evitando timing attacks). Se a assinatura não bater, o invasor é barrado imediatamente com HTTP 400 Bad Request.

2. Proteção Anti-Replay (Janela de 300 Segundos)

Mesmo que um invasor capture um pacote genuíno, a função extrai o timestamp t do cabeçalho e verifica se ele foi emitido há menos de 5 minutos (300s). Tentativas de reenviar eventos antigos são sumariamente descartadas.

3. Idempotência e Trava de Duplicidade

Redes instáveis fazem o Stripe reenviar eventos legítimos. Nosso motor mantém um registro dos IDs processados (event.id). Se o mesmo evento bater duas vezes no intervalo, o servidor confirma com HTTP 200 sem disparar mensagens duplicadas no seu WhatsApp.

O Código da Cloudflare Pages Function (v3.0.0 Selada)

Abaixo está o trecho da função com a validação criptográfica HMAC que roda em functions/api/stripe-webhook.js:

// functions/api/stripe-webhook.js — Validação Criptográfica Pura
export async function onRequestPost(context) {
    const { request, env } = context;
    const payloadText = await request.text();
    const signature = request.headers.get("stripe-signature");
    const secret = env.STRIPE_WEBHOOK_SECRET;

    // 1. Rejeição imediata de chamadas não assinadas
    if (!signature) {
        return new Response(JSON.stringify({ error: "Assinatura ausente" }), { status: 400 });
    }

    // 2. Validação HMAC-SHA256 via Web Crypto API nativa
    const valid = await verifyStripeSignature(payloadText, signature, secret);
    if (!valid) {
        return new Response(JSON.stringify({ error: "Assinatura forjada" }), { status: 400 });
    }

    const event = JSON.parse(payloadText);

    // 3. Doutrina do Pix: apenas vendas efetivamente pagas
    if (event.type === "checkout.session.completed" || event.type === "checkout.session.async_payment_succeeded") {
        const session = event.data?.object || {};
        if (session.payment_status !== "paid") {
            return new Response(JSON.stringify({ status: "ignored_unpaid" }), { status: 200 });
        }

        // 4. Despacha para o WhatsApp via Multi-Adaptador
        await despacharNotificacao(session, env);
        return new Response(JSON.stringify({ success: true }), { status: 200 });
    }
    return new Response(JSON.stringify({ received: true }), { status: 200 });
}
Pacote da Fábrica de Vídeos IA

⚡ Automatize Sua Fábrica de Conteúdo com IA

Enquanto o webhook avisa quando a venda cai, nossos scripts automatizam a produção de conteúdo: 20 roteiros prontos de alta retenção + prompts visuais cinematográficos + pipeline Python/FFmpeg para escalar canais no TikTok, Reels e Shorts.

Adquirir Pacote Completo (R$ 27,00) 🔒 Pix Instantâneo & Cartão
Pagamento seguro processado pela Stripe · Entrega imediata em .ZIP por HELPSECS LTDA