Como Integrar a API do 4Geeks Payments em uma Aplicação Node.js
Este guia descreve as etapas para integrar a API do 4Geeks Payments em uma aplicação Node.js.
Pré-requisitos¶
- Node.js: Versão 14 ou superior.
- Conta 4Geeks Payments: Você precisará de suas Chaves Pública e Secreta obtidas no painel do desenvolvedor.
- Conhecimento Básico: APIs REST e JavaScript assíncrono (
async/await).
Passo 1: Configurar seu Projeto¶
Inicialize um novo projeto Node.js e instale as dependências necessárias (axios, dotenv, express, body-parser).
- Inicializar o projeto:
mkdir 4geeks-payments-integration
cd 4geeks-payments-integration
npm init -y
npm install axios dotenv express body-parser
- Configurar Variáveis de Ambiente: Crie um arquivo
.envpara armazenar suas credenciais de API com segurança.
Passo 2: Autenticar com a API¶
Crie um arquivo de serviço (ex: paymentService.js) para lidar com as solicitações de API. Você usará o axios para enviar sua Chave Secreta no cabeçalho de Autorização.
// paymentService.js
require('dotenv').config();
const axios = require('axios');
const API_URL = 'https://api.4geeks.io/v1'; // Endpoint Base da API
const client = axios.create({
baseURL: API_URL,
headers: {
'Authorization': `Bearer ${process.env.FOURGEEKS_SECRET_KEY}`,
'Content-Type': 'application/json'
}
});
module.exports = client;
Passo 3: Criar uma Intenção de Pagamento¶
Adicione uma função ao paymentService.js para criar uma “Intenção de Pagamento” (Payment Intent) ou Cobrança. Isso inicia a transação.
const createPaymentIntent = async (amount, currency = 'USD', customerId) => {
try {
const response = await client.post('/charges', {
amount: amount, // Valor em centavos (ex: 1000 = $10.00)
currency: currency,
customer: customerId,
description: 'Cobrança de Assinatura SaaS'
});
return response.data;
} catch (error) {
console.error('Erro no Pagamento:', error.response ? error.response.data : error.message);
throw new Error('Falha ao criar intenção de pagamento');
}
};
module.exports = { createPaymentIntent };
Passo 4: Tratar Webhooks¶
Configure um servidor Express (ex: em server.js) para escutar eventos de webhook. Isso é crítico para confirmar pagamentos de forma assíncrona (ex: charge.succeeded).
// server.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// Endpoint de Webhook para escutar eventos de pagamento
app.post('/webhook', bodyParser.raw({type: 'application/json'}), (req, res) => {
const event = req.body;
// Em produção, verifique a assinatura aqui para garantir que a solicitação é legítima.
switch (event.type) {
case 'charge.succeeded':
const charge = event.data.object;
console.log('Pagamento bem-sucedido:', charge.id);
// Lógica para atualizar a assinatura do usuário ou processar o pedido
break;
case 'charge.failed':
console.log('Pagamento falhou:', event.data.object.id);
// Lógica para notificar o usuário
break;
default:
console.log('Tipo de evento não tratado:', event.type);
}
res.json({received: true});
});
app.listen(process.env.PORT || 3000, () => console.log('Servidor rodando...'));
Passo 5: Testar e Implementar¶
- Modo Sandbox: Use o ambiente sandbox do 4Geeks Payments para testar cobranças, cartões recusados e erros sem usar dinheiro real.
- Go Live: Uma vez verificado, mude suas credenciais para as chaves live (produção).
Dica: Para casos de uso simples, o artigo menciona que a 4Geeks também oferece links de checkout no-code se você não precisar de uma integração completa via API.
- Ainda tem dúvidas? Pergunte na comunidade..
- Consulte el changelog.