1.1.13 • Published 8 months ago

mpesa-connect v1.1.13

Weekly downloads
-
License
MIT
Repository
-
Last release
8 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

8 months ago

1.1.9

8 months ago

1.0.9

8 months ago

1.1.7

8 months ago

1.0.8

8 months ago

1.1.5

8 months ago

1.1.4

8 months ago

1.1.3

8 months ago

1.1.2

8 months ago

1.1.12

8 months ago

1.1.13

8 months ago

1.0.11

8 months ago

1.0.10

8 months ago

1.0.12

8 months ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago