npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

multi-acquirer-payment-controller

v1.0.0

Published

Pacote de integração com múltiplas adquirentes de pagamento

Downloads

9

Readme

Controller Payment Multi Acquirer

Pacote de integração com múltiplas adquirentes de pagamento, permitindo processar pagamentos com diferentes provedores através de uma interface unificada.

Instalação

npm install multi-acquirer-payment-controller

Funcionalidades

  • Integração com múltiplas adquirentes de pagamento
  • Interface unificada para todas as operações
  • Suporte a diferentes métodos de pagamento (cartão de crédito, boleto, PIX, etc.)
  • Operações de pagamento, consulta e estorno
  • Fácil extensão para adicionar novas adquirentes

Adquirentes Suportadas

  • PagSeguro
  • Mercado Pago (em breve)
  • Outras adquirentes podem ser adicionadas facilmente

Uso Básico

Inicialização

import { PaymentController } from 'controller-payment-multi-acquirer';

// Cria o controlador com o provedor desejado
const paymentController = new PaymentController('pagseguro');

// Inicializa com as credenciais
await paymentController.initialize({
  email: '[email protected]',
  token: 'seu-token-de-acesso'
}, 'sandbox'); // ou 'production'

Gerar Pagamento

const paymentResult = await paymentController.generatePayment({
  orderId: 'pedido-123',
  description: 'Compra na loja virtual',
  amount: 1000, // R$ 10,00
  customer: {
    name: 'José da Silva',
    email: '[email protected]',
    documentNumber: '12345678909'
  },
  items: [
    {
      id: 'produto-1',
      name: 'Produto de Teste',
      quantity: 1,
      unitAmount: 1000
    }
  ],
  paymentMethod: {
    type: 'credit_card',
    installments: 1,
    card: {
      number: '4111111111111111',
      expirationMonth: 12,
      expirationYear: 2030,
      securityCode: '123',
      holderName: 'José da Silva'
    }
  }
});

console.log('Pagamento gerado:', paymentResult);

Consultar Pagamento

const paymentInfo = await paymentController.queryPayment('ID_DO_PAGAMENTO');
console.log('Informações do pagamento:', paymentInfo);

Estornar Pagamento

// Estorno total
const refundResult = await paymentController.refundPayment('ID_DO_PAGAMENTO');
console.log('Estorno realizado:', refundResult);

// Estorno parcial
const partialRefundResult = await paymentController.refundPayment('ID_DO_PAGAMENTO', 500); // R$ 5,00
console.log('Estorno parcial realizado:', partialRefundResult);

Trocar de Adquirente

// Altera para outro provedor
paymentController.changeProvider('mercadopago');

// Inicializa com as credenciais do novo provedor
await paymentController.initialize({
  accessToken: 'seu-access-token-do-mercado-pago'
}, 'sandbox');

Tratamento de Erros

import { PaymentError, ErrorCodes } from 'controller-payment-multi-acquirer';

try {
  const paymentResult = await paymentController.generatePayment({
    // dados do pagamento
  });
} catch (error) {
  if (error instanceof PaymentError) {
    console.error(`Erro de pagamento: ${error.message}`);
    console.error(`Código: ${error.code}`);
    console.error('Dados adicionais:', error.data);
    
    // Tratamento específico por código de erro
    if (error.code === ErrorCodes.PAYMENT_CREATION_ERROR) {
      // Lógica específica para erro de criação de pagamento
    }
  } else {
    console.error('Erro desconhecido:', error);
  }
}

Adicionando uma Nova Adquirente

Para adicionar uma nova adquirente, você precisa:

  1. Criar uma nova pasta em src/gateways com o nome da adquirente
  2. Implementar a interface PaymentGatewayInterface
  3. Adicionar a nova adquirente na factory PaymentGatewayFactory

Testes

O pacote inclui testes automatizados para todas as funcionalidades principais. Os testes estão localizados na pasta .tests e são organizados por funcionalidade:

  • Teste de inicialização/conexão
  • Teste de criação de pagamento
  • Teste de consulta de pagamento
  • Teste de estorno de pagamento

Executando os testes

Para executar todos os testes:

npm test

Para executar testes específicos:

# Teste de inicialização
npm run test:init

# Teste de criação de pagamento
npm run test:create

# Teste de consulta de pagamento
npm run test:query

# Teste de estorno de pagamento
npm run test:refund

# Executar todos os testes em sequência
npm run test:all

Para mais detalhes sobre os testes, consulte o README da pasta de testes.

Licença

MIT