1.1.13 • Published 6 months ago

mpesa-connect v1.1.13

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

Mpesa SDK (mpesa-connect)

Uma biblioteca para integração com a API M-Pesa.

Índice

Instalação

Clone o repositório ou adicione a biblioteca ao seu projeto com npm:

npm install mpesa-connect

Crie um arquivo .env na raiz do seu projeto. Utilize o arquivo .env.example para referência:

MPESA_PUBLIC_KEY=YOUR_PUBLIC_KEY
MPESA_API_KEY=YOUR_API_KEY
MPESA_SERVICE_PROVIDER_CODE=YOUR_SERVICE_PROVIDER_CODE

Substitua YOUR_PUBLIC_KEY, YOUR_API_KEY e YOUR_SERVICE_PROVIDER_CODE pelos valores fornecidos pela sua conta M-Pesa.

Configuração

Para configurar a biblioteca, crie um arquivo .env com as variáveis de ambiente necessárias. Exemplo de .env:

MPESA_PUBLIC_KEY=YOUR_PUBLIC_KEY
MPESA_API_KEY=YOUR_API_KEY
MPESA_SERVICE_PROVIDER_CODE=YOUR_SERVICE_PROVIDER_CODE

Uso

Aqui está um exemplo básico de como usar a biblioteca:

import { initializeMpesa } from "mpesa-connect";

const mpesa = initializeMpesa({
  publicKey: process.env.MPESA_PUBLIC_KEY,
  apiKey: process.env.MPESA_API_KEY,
  serviceProviderCode: process.env.MPESA_SERVICE_PROVIDER_CODE,
  env: "test", // Use 'live' para produção e 'test' para teste
});

const run = async () => {
  try {
    const result = await mpesa.c2b("TX123456", "258840000000", 10, "REF123");
    console.log("C2B Result:", result);
  } catch (error) {
    console.error("Error:", error.message);
  }
};

run();

Métodos Disponíveis

c2b(transactionReference, customerMSISDN, amount, thirdPartyReference, serviceProviderCode)

Inicia uma transação C2B.

  • transactionReference: Referência da transação.
  • customerMSISDN: Número MSISDN do cliente.
  • amount: Valor da transação.
  • thirdPartyReference: Referência única do sistema de terceiros.
  • serviceProviderCode: Código do provedor de serviço (opcional).

b2c(transactionReference, customerMSISDN, amount, thirdPartyReference, serviceProviderCode)

Inicia uma transação B2C.

  • transactionReference: Referência da transação.
  • customerMSISDN: Número MSISDN do cliente.
  • amount: Valor da transação.
  • thirdPartyReference: Referência única do sistema de terceiros.
  • serviceProviderCode: Código do provedor de serviço (opcional).

transactionReversal(transactionID, securityCredential, initiatorIdentifier, thirdPartyReference, serviceProviderCode, reversalAmount)

Realiza um estorno de transação.

  • transactionID: ID da transação.
  • securityCredential: Credencial de segurança.
  • initiatorIdentifier: Identificador do iniciador.
  • thirdPartyReference: Referência única do sistema de terceiros.
  • serviceProviderCode: Código do provedor de serviço.
  • reversalAmount: Valor do estorno.

status(thirdPartyReference, queryReference, serviceProviderCode)

Consulta o status de uma transação.

  • thirdPartyReference: Referência única do sistema de terceiros.
  • queryReference: Referência da consulta.
  • serviceProviderCode: Código do provedor de serviço.

Criação de Tipagens Manuais

Se você estiver usando TypeScript e não conseguir encontrar as definições de tipo para o pacote mpesa-connect, você pode criar suas próprias definições de tipo manualmente. Para fazer isso, siga os passos abaixo:

  1. Crie um arquivo chamado mpesa-connect.d.ts na pasta src ou em uma pasta dedicada a tipos.

  2. Adicione o seguinte conteúdo ao arquivo mpesa-connect.d.ts:

// src/mpesa-connect.d.ts
declare module "mpesa-connect" {
  export interface MpesaOptions {
    publicKey?: string;
    apiKey?: string;
    serviceProviderCode?: string;
    env: "live" | "sandbox";
  }

  export interface MakeRequestResponse {
    response: any;
    status: number;
  }

  export interface Mpesa {
    c2b(
      transactionReference: string,
      customerMSISDN: string,
      amount: number,
      thirdPartyReference: string,
      serviceProviderCodeParam?: string
    ): Promise<MakeRequestResponse>;

    b2c(
      transactionReference: string,
      customerMSISDN: string,
      amount: number,
      thirdPartyReference: string,
      serviceProviderCodeParam?: string
    ): Promise<MakeRequestResponse>;

    transactionReversal(
      transactionID: string,
      securityCredential: string,
      initiatorIdentifier: string,
      thirdPartyReference: string,
      reversalAmount: number,
      serviceProviderCodeParam?: string
    ): Promise<MakeRequestResponse>;

    status(
      thirdPartyReference: string,
      queryReference: string,
      serviceProviderCodeParam?: string
    ): Promise<MakeRequestResponse>;

    getToken(): string;
  }

  export function initializeMpesa(options: MpesaOptions): Mpesa;
}
  1. Certifique-se de que o TypeScript reconheça o arquivo de definições de tipo. Você pode precisar atualizar seu tsconfig.json para incluir o diretório onde o arquivo está localizado.

Agora você pode usar o pacote mpesa-connect em seu projeto TypeScript sem problemas de tipagem.

Contribuições

Se você deseja contribuir para o projeto, siga as seguintes etapas:

  1. Abra uma issue: Caso encontre um problema ou tenha uma sugestão.
  2. Envie um pull request: Para propor mudanças ou melhorias.
  3. Certifique-se de seguir as diretrizes de contribuição: Inclua testes para suas alterações.

Licença

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.

1.1.1

6 months ago

1.1.9

6 months ago

1.0.9

6 months ago

1.1.7

6 months ago

1.0.8

6 months ago

1.1.5

6 months ago

1.1.4

6 months ago

1.1.3

6 months ago

1.1.2

6 months ago

1.1.12

6 months ago

1.1.13

6 months ago

1.0.11

6 months ago

1.0.10

6 months ago

1.0.12

6 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.1.0

10 months ago

1.0.0

10 months ago