PHPackages                             thetechguy47/mpesa-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. thetechguy47/mpesa-api

ActiveLibrary[API Development](/categories/api)

thetechguy47/mpesa-api
======================

Biblioteca PHP para integração com a API M-Pesa (C2B, B2C e B2B).

10PHP

Since Oct 22Pushed 6mo agoCompare

[ Source](https://github.com/thetechguy47/mpesa-api)[ Packagist](https://packagist.org/packages/thetechguy47/mpesa-api)[ RSS](/packages/thetechguy47-mpesa-api/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

BIBLIOTECA PARA INTEGRAÇÃO DO MPESA API PARA PAGAMENTOS ONLINE
==============================================================

[](#biblioteca-para-integração-do-mpesa-api-para-pagamentos-online)

Este repositório contém um exemplo simples de integração com M-Pesa para pagamentos via C2B em PHP. O objectivo deste README é explicar, passo a passo, o que é necessário para executar o projecto localmente (WAMP/XAMPP) e em produção, como configurar credenciais e como testar pagamentos.

Estrutura principal
-------------------

[](#estrutura-principal)

- `index.php` - Página frontend onde o utilizador preenche número, valor e envia a solicitação de pagamento.
- `processa-mpesa.php` - Script servidor que recebe a requisição do frontend e interage com a API M-Pesa (C2B). Ai colocar suas credencias fornecidas na ()
- `mpesa-callback.php` - Endpoint para receber notificações (callbacks) da M-Pesa com o resultado da transação.
- `vendor/` - Dependências gerenciadas pelo Composer. Inclui `thetechguy/mpesa-api` que contém classes para facilitar chamadas à API M-Pesa.
- `logs/` e `storage/` - Pastas para armazenar logs e arquivos temporários.

> Observação: O pacote `thetechguy/mpesa-api` está incluído em `vendor/thetechguy/mpesa-api` como dependência do Composer. Revise `vendor/thetechguy/mpesa-api/README.md` e `examples/` se precisar de referências específicas.

Pré-requisitos
--------------

[](#pré-requisitos)

- PHP 7.4+ (recomendado PHP 8.x)
- Composer (para gerenciar dependências)
- Servidor web (WAMP no Windows, LAMP, ou um servidor com SSL em produção)
- Certificado SSL (recomendado para produção; callbacks normalmente exigem HTTPS ai desativei pois e ambiente de teste teras que depois habilitar)
- Credenciais M-Pesa (Consumer Key, Consumer Secret, Shortcode...) fornecidas pela Vodacom

Passo a passo — Instalação e configuração local (WAMP)
------------------------------------------------------

[](#passo-a-passo--instalação-e-configuração-local-wamp)

1. Coloque o Projecto na pasta do seu servidor web (ex.: `c:\wamp64\www\mpesa`).
2. Certifique-se de que o Apache e o MySQL (se necessário) do WAMP estão em execução.
3. Instale o Composer localmente se ainda não o fez:
4. Se você alterou o composer.json ou quiser actualizar dependências, rode no PowerShell:

```
cd c:\wamp64\www\mpesa; composer install
```

5. Configure variáveis de ambiente ou edite o arquivo de configuração usado pelos scripts (se houver). Este projeto busca `MPESA_ENV` usando `getenv('MPESA_ENV')` e assume `sandbox` por padrão. Você pode definir variáveis de ambiente no Windows (sistema) ou em um arquivo `.env` se preferir (atenção: este projecto não inclui parser .env por padrão).

Exemplo (PowerShell - sessão atual):

```
$env:MPESA_ENV = 'sandbox'
$env:MPESA_CONSUMER_KEY = 'SEU_CONSUMER_KEY'
$env:MPESA_CONSUMER_SECRET = 'SEU_CONSUMER_SECRET'
$env:MPESA_SHORTCODE = '123456'
$env:MPESA_PASSKEY = 'SUA_PASSKEY'
```

6. Garanta que `processa-mpesa.php` e `mpesa-callback.php` estejam configurados para ler essas variáveis ou para carregar um arquivo de configuração com as credenciais.

Como funciona o fluxo (resumido)
--------------------------------

[](#como-funciona-o-fluxo-resumido)

1. O utilizador preenche número M-Pesa (+258xxxxxxxxx), valor e tipo no `index.php` e clica em PAGAR.
2. O frontend JavaScript envia uma requisição POST para `processa-mpesa.php` com os dados do pagamento.
3. `processa-mpesa.php` usa as classes do pacote `thetechguy/mpesa-api` (ou outra implementação) para criar a solicitação C2B para a Vodacom.
4. A operadora processa a solicitação e envia um callback para `mpesa-callback.php` com o resultado (sucesso/erro, transação, reference id, etc.).
5. O sistema deve registrar (log) o callback e actualizar o estado do pedido/transação no seu sistema.

Ajustes importantes no servidor
-------------------------------

[](#ajustes-importantes-no-servidor)

- Callbacks: a M-Pesa normalmente exige um endpoint HTTPS público para callbacks. Para testes locais você pode usar ferramentas como `ngrok` para expor seu servidor local via HTTPS.
- Firewalls/Ports: permita conexões de entrada (HTTPS) se você estiver em produção.
- Logs: configure `logs/` com permissões de escrita pelo servidor web.

Testando (sandbox)
------------------

[](#testando-sandbox)

1. Use as credenciais de sandbox fornecidas pela Vodacom
2. Defina `MPESA_ENV` para `sandbox`.
3. Abra `index.php` no navegador (ex.: `http://localhost/mpesa/index.php`).
4. Preencha os dados (o frontend já possui exemplos/valores padrão) e clique em PAGAR.
5. Verifique os logs no frontend (`response-log`) e nos arquivos de `logs/` do servidor.

Exemplo de integração em `processa-mpesa.php`
---------------------------------------------

[](#exemplo-de-integração-em-processa-mpesaphp)

- Certifique-se de usar o autoload do Composer no topo do arquivo:

```
require_once __DIR__ . '/vendor/autoload.php';
```

- Em seguida, carregue as credenciais via `getenv()` ou outro método seguro e inicialize a classe do provedor M-Pesa conforme a biblioteca disponibiliza (consulte `vendor/thetechguy/mpesa-api/src/Mpesa.php`).

Exemplos incluídos e como executá-los
-------------------------------------

[](#exemplos-incluídos-e-como-executá-los)

O pacote `thetechguy/mpesa-api` já traz exemplos práticos na pasta `vendor/thetechguy/mpesa-api/examples`. Nessa pasta você encontrará, entre outros, os seguintes exemplos:

- `b2b.php` — exemplo de Business-to-Business
- `b2c.php` — exemplo de Business-to-Customer
- `c2b.php` — exemplo de Customer-to-Business

composer require thetechguy47/mpesa-api

```

```

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance46

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/3e9cb2ab113960d2905a7693ba4e63a6aa6de6e094c5557273bf964d5e86dade?d=identicon)[thetechguy47](/maintainers/thetechguy47)

---

Top Contributors

[![thetechguy47](https://avatars.githubusercontent.com/u/68455466?v=4)](https://github.com/thetechguy47 "thetechguy47 (4 commits)")

### Embed Badge

![Health badge](/badges/thetechguy47-mpesa-api/health.svg)

```
[![Health](https://phpackages.com/badges/thetechguy47-mpesa-api/health.svg)](https://phpackages.com/packages/thetechguy47-mpesa-api)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[facebook/php-business-sdk

PHP SDK for Facebook Business

90821.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

74513.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

265103.1M454](/packages/google-gax)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
