Logo Lanfrica

abel-banze/mpesa-sdk

Domaine:

digital infrastructure

Type de record:

software
Créateur:
abe
Hôte:
SDK de integração da API do Mpesa # M-Pesa SDK para Moçambique Um SDK robusto e completo para integração com a API M-Pesa da Vodacom em Moçambique, desenvolvido em TypeScript/JavaScript. Suporta todas as operações principais: C2B, B2C, B2B, Query e Reversal. ## 🚀 Características - **Autenticação Segura**: Criptografia RSA do apiKey com a publicKey - **Seleção de Ambiente**: Suporte automático para sandbox e produção - **Tratamento de Erros Robusto**: Classe MpesaError personalizada - **Logging Detalhado**: Para depuração e monitoramento - **TypeScript**: Tipagem completa para melhor experiência de desenvolvimento - **Testes Unitários**: Cobertura completa com Jest - **API Simplificada**: Métodos curtos e intuitivos - **Respostas Legíveis**: Formato de resposta limpo e organizado ## 📦 Instalação ```bash npm install mpesa-mz-sdk ``` ## ⚙️ Configuração ### Variáveis de Ambiente Crie um arquivo `.env` na raiz do seu projeto: ```env # Credenciais M-Pesa MPESA_API_KEY=sua_api_key_aqui MPESA_PUBLIC_KEY=sua_public_key_aqui MPESA_SERVICE_PROVIDER_CODE=seu_service_provider_code MPESA_ORIGIN=seu_origin_aqui # Ambiente (sandbox ou live) MPESA_ENV=sandbox ``` ### Configuração do SDK ```typescript import { MpesaService } from 'mpesa-sdk-mozambique'; const mpesa = new MpesaService({ apiKey: process.env.MPESA_API_KEY!, publicKey: process.env.MPESA_PUBLIC_KEY!, serviceProviderCode: process.env.MPESA_SERVICE_PROVIDER_CODE!, origin: process.env.MPESA_ORIGIN!, env: process.env.MPESA_ENV as 'sandbox' | 'live', // Define automaticamente o host timeout: 60000 // Timeout opcional em ms }); ``` ## 📚 Uso ### Formato de Resposta Todos os métodos retornam um objeto padronizado com a seguinte estrutura: ```typescript { status: 'success' | 'error', message: string, data?: T, // Dados específicos da operação code?: string, // Código de resposta da M-Pesa httpStatus?: number, transactionId?: string, conversationId?: string, thirdPartyReference?: string, timestamp?: string } ``` ### C2B (Customer to Business) ``` …