Integração completa de PIX e Cartão de Crédito com Woovi, Stripe e Pagar.me usando Padrão Adapter
export abstract class PaymentGateway {
abstract createCharge(data: any): Promise<any>;
abstract deleteCharge(id: string): Promise<any>;
abstract getCharge(id: string): Promise<any>;
}
Integrar diferentes gateways de pagamento no Node.js pode ser complexo devido às várias APIs e suas peculiaridades. O padrão Adapter com TypeScriptcria uma interface unificada para PIX e cartão de crédito, facilitando manutenção, escalabilidade e integração com Woovi, Stripe e Pagar.me.
TypeScript garante tipagem estática e segurança do código em todas as implementações de gateway de pagamento, reduzindo erros em produção.
Interface comum permite trocar gateways de pagamento facilmente sem alterar o código principal da API Node.js.
Suporte nativo para PIX, cartão de crédito e assinaturas em todos os gateways como Woovi, Stripe e Pagar.me.
Organização modular com padrão Adapter para facilitar a manutenção e escalabilidade do código de gateway de pagamento
src/
├── contracts/
│ └── PaymentGateway.ts
├── adapters/
│ ├── WooviAdapter.ts
│ ├── StripeAdapter.ts
│ ├── PagarmeAdapter.ts
│ └── index.ts
└── config/
└── env.ts
export abstract class PaymentGateway {
abstract createCharge(data: any): Promise<any>;
abstract deleteCharge(id: string): Promise<any>;
abstract getCharge(id: string): Promise<any>;
abstract createSubscription(data: any): Promise<any>;
abstract getSubscription(id: string): Promise<any>;
abstract createCustomer(data: any): Promise<any>;
abstract getCustomer(id: string): Promise<any>;
abstract getChargeByCustomer(data: any): Promise<any>;
}
Implemente múltiplos gateways de pagamento com uma única interface
Veja como é simples implementar um gateway de pagamento usando o padrão Adapter
async createCharge(data: any): Promise<any> {
const { correlationID, value, comment } = data;
try {
const { data } = await axios.post(
https://api.openpix.com.br/api/v1/charge?return_existing=true,
{ correlationID, value, comment },
{
headers: {
Authorization: this.apiKey,
content-type: application/json
},
}
);
return data;
} catch (e: any) {
return e?.response?.data;
}
}
Bootcamp completo para desenvolvedores pleno/sênior que desejam dominar Node.js, TypeScript e padrões avançados de projeto.
Design Patterns, TDD
Sem restrições
Sistema completo
Personagens brasileiros