thetechguy47 / mpesa-api
Biblioteca PHP para integração com a API M-Pesa (C2B, B2C e B2B).
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
pkg:composer/thetechguy47/mpesa-api
Requires
- php: >=7.4
This package is auto-updated.
Last update: 2025-10-22 08:40:27 UTC
README
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
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 (https://developer.mpesa.vm.co.mz)mpesa-callback.php- Endpoint para receber notificações (callbacks) da M-Pesa com o resultado da transação.vendor/- Dependências gerenciadas pelo Composer. Incluithetechguy/mpesa-apique contém classes para facilitar chamadas à API M-Pesa.logs/estorage/- Pastas para armazenar logs e arquivos temporários.
Observação: O pacote
thetechguy/mpesa-apiestá incluído emvendor/thetechguy/mpesa-apicomo dependência do Composer. Revisevendor/thetechguy/mpesa-api/README.mdeexamples/se precisar de referências específicas.
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)
- Coloque o Projecto na pasta do seu servidor web (ex.:
c:\wamp64\www\mpesa). - Certifique-se de que o Apache e o MySQL (se necessário) do WAMP estão em execução.
- Instale o Composer localmente se ainda não o fez: https://getcomposer.org/
- Se você alterou o composer.json ou quiser actualizar dependências, rode no PowerShell:
cd c:\wamp64\www\mpesa; composer install
- Configure variáveis de ambiente ou edite o arquivo de configuração usado pelos scripts (se houver). Este projeto busca
MPESA_ENVusandogetenv('MPESA_ENV')e assumesandboxpor padrão. Você pode definir variáveis de ambiente no Windows (sistema) ou em um arquivo.envse 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'
- Garanta que
processa-mpesa.phpempesa-callback.phpestejam configurados para ler essas variáveis ou para carregar um arquivo de configuração com as credenciais.
Como funciona o fluxo (resumido)
- O utilizador preenche número M-Pesa (+258xxxxxxxxx), valor e tipo no
index.phpe clica em PAGAR. - O frontend JavaScript envia uma requisição POST para
processa-mpesa.phpcom os dados do pagamento. processa-mpesa.phpusa as classes do pacotethetechguy/mpesa-api(ou outra implementação) para criar a solicitação C2B para a Vodacom.- A operadora processa a solicitação e envia um callback para
mpesa-callback.phpcom o resultado (sucesso/erro, transação, reference id, etc.). - O sistema deve registrar (log) o callback e actualizar o estado do pedido/transação no seu sistema.
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
ngrokpara 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)
- Use as credenciais de sandbox fornecidas pela Vodacom
- Defina
MPESA_ENVparasandbox. - Abra
index.phpno navegador (ex.:http://localhost/mpesa/index.php). - Preencha os dados (o frontend já possui exemplos/valores padrão) e clique em PAGAR.
- Verifique os logs no frontend (
response-log) e nos arquivos delogs/do servidor.
Exemplo de integração em processa-mpesa.php
- 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 (consultevendor/thetechguy/mpesa-api/src/Mpesa.php).
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-Businessb2c.php— exemplo de Business-to-Customerc2b.php— exemplo de Customer-to-Business
composer require thetechguy47/mpesa-api