Ir para o conteúdo

Como Integrar a API do 4Geeks Payments em uma Aplicação Node.js

🤖 Explicar com IA

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).

  1. Inicializar o projeto:
mkdir 4geeks-payments-integration
cd 4geeks-payments-integration
npm init -y
npm install axios dotenv express body-parser
  1. Configurar Variáveis de Ambiente: Crie um arquivo .env para armazenar suas credenciais de API com segurança.
# arquivo .env
FOURGEEKS_SECRET_KEY=sua_chave_secreta_aqui
PORT=3000

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.