Lead Capture

Settings · Projeto 2

Configuração isolada do Projeto 2. Usa tabela, conta Resend e passphrase próprias.

Variáveis de ambiente

NEXT_PUBLIC_SUPABASE_URL / SUPABASE_URL

URL do projeto Supabase (compartilhada; tabela isolada checkout_leads_project2).

Configurada

SUPABASE_SERVICE_ROLE_KEY

Chave privada usada apenas no servidor. Nunca exposta ao frontend.

Configurada

ALLOWED_ORIGINS

Domínios autorizados a chamar /api/project2/capture-email (separados por vírgula).

Pendente

RESEND_API_KEY_PROJECT2

Chave secreta da 2ª conta Resend. Usada apenas no servidor.

Configurada

RESEND_FROM_PROJECT2

Remetente verificado do Projeto 2, usado no envio do HTML local.

Pendente

DIGISTORE_IPN_PASSPHRASE_PROJECT2

Passphrase da assinatura SHA usada para validar o IPN da 2ª conta Digistore24.

Configurada
Endpoint de captura
POST /api/project2/capture-email

Aceita JSON com os campos email (obrigatório), first_name, last_name e checkout_email (opcionais). Grava na tabela isolada checkout_leads_project2.

Webhook IPN da Digistore24
POST /api/project2/digistore-ipn

Configure esta URL na 2ª conta Digistore24 e defina a mesma passphrase em DIGISTORE_IPN_PASSPHRASE_PROJECT2. Toda requisição é validada pela assinatura SHA-512 antes de ser processada. O matching usa o checkout_email; o email de aprovação (HTML local "TikTok Rewards access") é enviado sempre ao original_email. Apenas o evento de pagamento aprovado dispara o envio.

Script para o Google Tag Manager

Cole no GTM do checkout do Projeto 2, substituindo o domínio e as variáveis pelos valores reais. Nenhuma chave secreta é usada no frontend — a proteção é feita via ALLOWED_ORIGINS.

<script>
  fetch("https://SEU-DOMINIO.vercel.app/api/project2/capture-email", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      email: "{{email_original}}",
      first_name: "{{primeiro_nome}}",
      last_name: "{{sobrenome}}",
      checkout_email: "{{email_checkout}}"
    })
  });
</script>