Files
pagodera/TESTE_ABACATEPAY.md
Evandro Fonseca Junior ef521876eb feat: enhance AbacatePay donation system with updated docs and form fields
Updated ABACATEPAY_SETUP.md with comprehensive setup guide, including environment variables, API key instructions, webhook configuration, donation flow, and field details for better integration clarity. Added required fields (phone, CPF/CNPJ) to the donation form in app/[locale]/apoiar/page.tsx to collect essential donor information and improve compliance. This ensures smoother setup and more robust donation processing.
2025-10-26 21:16:59 -03:00

163 lines
4.2 KiB
Markdown

# Guia de Teste - Sistema de Doações AbacatePay
## 🔧 Configuração Inicial
### 1. Criar conta no AbacatePay
- Acesse: https://abacatepay.com
- Crie uma conta gratuita
- Acesse o Dashboard
### 2. Obter chave de API
- No Dashboard, vá para "API Keys" ou "Configurações"
- Copie sua **TEST API KEY** (começa com `abc_test_...`)
- Você também precisará da **PRODUCTION API KEY** quando for para produção
### 3. Configurar produtos (OPCIONAL)
O sistema de PIX não requer produtos pré-cadastrados no AbacatePay. Os valores são enviados diretamente na requisição.
Os produtos já estão definidos no código:
- Café: R$ 5,00 (500 centavos)
- Lanche: R$ 10,00 (1000 centavos)
- Almoço: R$ 25,00 (2500 centavos)
### 4. Configurar variáveis de ambiente
Crie um arquivo `.env.local` na raiz do projeto:
```env
# AbacatePay API Keys
ABACATE_TEST_APIKEY=sua_chave_de_teste_aqui
# URL base da aplicação
NEXT_PUBLIC_BASE_URL=http://localhost:3000
```
**IMPORTANTE**: Não é necessário `ABACATEPAY_ACCOUNT_ID` nem produtos pré-cadastrados. O sistema PIX funciona diretamente com a API.
## 🧪 Testando o Sistema
### Ambiente de Teste (Development)
1. **Inicie o servidor de desenvolvimento**:
```bash
pnpm run dev
```
2. **Acesse a página de doações**:
```
http://localhost:3000/pt/apoiar
```
3. **Clique em um dos cards de doação**
4. **Verifique os logs no terminal**:
```
🔧 AbacatePay: Using TEST environment
🔍 AbacatePay Request: {
"frequency": "ONE_TIME",
"methods": ["PIX"],
"products": [
{
"externalId": "prod_...",
"name": "Doação Café",
"quantity": 1,
"price": 500
}
],
...
}
🔍 AbacatePay Response Status: 200
```
5. **Resultado esperado**:
- Status 200 ✅
- Redirecionamento para página de pagamento do AbacatePay
- OU exibição de QR Code PIX (modal)
### Estrutura da Requisição Correta
```json
{
"frequency": "ONE_TIME",
"methods": ["PIX"],
"products": [
{
"externalId": "prod_6ryJmhfZGNJGjNaYaA1YqhDn",
"name": "Doação Café",
"quantity": 1,
"price": 500
}
],
"returnUrl": "http://localhost:3000/apoiar/obrigado",
"completionUrl": "http://localhost:3000/api/donations/verify"
}
```
**Campos obrigatórios:**
- ✅ `externalId`: ID do produto pré-cadastrado
- ✅ `name`: Nome do produto
- ✅ `quantity`: Quantidade (sempre 1)
- ✅ `price`: Valor em centavos (R$ 5,00 = 500)
## 🔍 Troubleshooting
### Erro: "Route POST:/v1/billing not found"
**Solução**: Endpoint correto é `/billing/create`, não `/billing`
### Erro: "must have required property 'name'"
**Solução**: Adicionar campo `name` no array de produtos
### Erro: "Product not found"
**Solução**: Verificar se os IDs dos produtos estão corretos e existem no painel
### Erro: "Invalid API key"
**Solução**:
- Verifique se a chave está correta no `.env.local`
- Certifique-se de usar `ABACATE_TEST_APIKEY` em development
- Reinicie o servidor após alterar variáveis de ambiente
### Erro: "401 Unauthorized"
**Solução**: Chave de API expirada ou inválida. Gere uma nova no painel.
## 📋 Checklist de Validação
- [ ] Conta criada no AbacatePay
- [ ] API Key de teste obtida
- [ ] 3 produtos criados no painel (R$ 5, R$ 10, R$ 25)
- [ ] IDs dos produtos atualizados em `types/donation.ts`
- [ ] Arquivo `.env.local` criado com as variáveis
- [ ] Servidor reiniciado após configurar variáveis
- [ ] Página `/pt/apoiar` carrega sem erros
- [ ] Logs mostram "Using TEST environment"
- [ ] Clique em um card envia requisição
- [ ] Status 200 retornado
- [ ] Redirecionamento funciona ou QR Code é exibido
## 🚀 Deploy em Produção
Quando estiver pronto para produção:
1. Configure as variáveis no Vercel/Netlify:
```
ABACATE_APIKEY=abc_live_...
ABACATEPAY_ACCOUNT_ID=...
NEXT_PUBLIC_BASE_URL=https://seusite.com
```
2. O sistema detecta automaticamente o ambiente:
```typescript
const isProduction = process.env.NODE_ENV === "production";
const apiKey = isProduction
? process.env.ABACATE_APIKEY
: process.env.ABACATE_TEST_APIKEY;
```
3. Teste novamente em produção antes de divulgar
## 📞 Suporte
- Documentação: https://docs.abacatepay.com
- API Reference: https://abacatepay.readme.io
- Dashboard: https://abacatepay.com/dashboard