carsaimz/mpesa-api
最新稳定版本:v2.0.1
Composer 安装命令:
composer require carsaimz/mpesa-api
包简介
API PHP para integração com M-PESA Moçambique | PHP API for M-PESA Mozambique integration
README 文档
README
API PHP para integração com M-PESA de Moçambique.
📦 Instalação
Via Composer (Recomendado)
composer require carsaimz/mpesa-api
Instalação Manual
- Faça download dos arquivos
- Inclua o autoloader no seu projeto:
require_once 'caminho/para/autoload.php';
⚙️ Configuração
Obtenha suas credenciais em https://developer.mpesa.vm.co.mz/
use carsaimz\Mpesa; $mpesa = Mpesa::init( $api_key, // API Key do portal $public_key, // Public Key do portal "development" // "development" (sandbox) ou "production" (produção) );
🚀 Operações Suportadas
- C2B (Cliente → Negócio)
Pagamento do cliente para o negócio.
$response = $mpesa->c2b([ "value" => 10, // Valor da transação "client_number" => "258840000000", // Número do cliente (formato: 258XXXXXXXXX) "agent_id" => 171717, // Código do agente/fornecedor "transaction_reference" => 1234567, // Referência da transação (única) "third_party_reference" => 33333 // Referência de terceiro ]); print_r($response);
- B2C (Negócio → Cliente)
Pagamento do negócio para o cliente.
$response = $mpesa->b2c([ "value" => 10, "client_number" => "258840000000", "agent_id" => 171717, "transaction_reference" => 1234567, "third_party_reference" => 33333 ]); print_r($response);
- B2B (Negócio → Negócio)
Transferência entre empresas.
$response = $mpesa->b2b([ "value" => 10, "agent_id" => 171717, // Código do remetente "agent_receiver_id" => 979797, // Código do destinatário "transaction_reference" => 1234567, "third_party_reference" => 33333 ]); print_r($response);
- Reversão
Estorno de uma transação.
$response = $mpesa->reversal([ "value" => 10, // Valor a reverter "security_credential" => "", // Credencial de segurança (gerada) "indicator_identifier" => "", // Identificador do iniciador "transaction_id" => "", // ID da transação original "agent_id" => 171717, "third_party_reference" => 33333 ]); print_r($response);
- Consultar Estado
Verificar status de uma transação.
$response = $mpesa->status([ "transaction_id" => "", // ID da transação "agent_id" => 171717, "third_party_reference" => 33333 ]); print_r($response);
- Nome do Cliente
Consultar nome do cliente pelo número.
Nota: Requer credenciais de produção.
$response = $mpesa->customer_name([ "client_number" => "258840000000", "agent_id" => 171717, "third_party_reference" => 33333 ]); print_r($response);
✅ Resposta de Sucesso
{
"output_ResponseCode": "INS-0",
"output_ResponseDesc": "Request processed successfully",
"output_TransactionID": "AG_20240321_12345",
"output_ConversationID": "e73b138d-fbd4-4be7-9965-2f4600f44c7d",
"output_ThirdPartyReference": "33333"
}
❌ Códigos de Erro Comuns
Código Descrição Ação Recomendada INS-0 Sucesso - INS-1 Erro interno do sistema Tentar novamente INS-5 Transação duplicada Usar nova referência INS-6 Saldo insuficiente Verificar saldo INS-9 Transação não encontrada Verificar ID da transação INS-14 Número inválido Verificar formato (258XXXXXXXXX) INS-2001 Credenciais inválidas Verificar API Key e Public Key
🔧 Exemplo Completo
<?php require_once 'vendor/autoload.php'; use carsaimz\Mpesa; try { // Configuração $mpesa = Mpesa::init( "SUA_API_KEY_AQUI", "SUA_PUBLIC_KEY_AQUI", "development" // Altere para "production" em produção ); // Executar transação C2B $response = $mpesa->c2b([ "value" => 100, "client_number" => "258840000000", "agent_id" => 171717, "transaction_reference" => time(), // Usar timestamp como referência única "third_party_reference" => "ORDER_123" ]); // Processar resposta $data = json_decode($response, true); if(isset($data['output_ResponseCode']) && $data['output_ResponseCode'] === 'INS-0') { echo "✅ Transação realizada com sucesso!\n"; echo "ID da Transação: " . $data['output_TransactionID'] . "\n"; echo "ID da Conversação: " . $data['output_ConversationID'] . "\n"; } else { echo "❌ Erro na transação: " . ($data['output_ResponseDesc'] ?? 'Erro desconhecido') . "\n"; } } catch (Exception $e) { echo "❌ Exceção: " . $e->getMessage() . "\n"; }
📁 Estrutura do Projeto
mpesa-api/
├── src/
│ ├── carsaimz/
│ │ ├── Mpesa.php
│ │ ├── Transaction.php
│ │ ├── Request.php
│ │ └── Cryptor.php
│ └── autoload.php
├── examples/
│ ├── c2b.php
│ ├── b2c.php
│ ├── b2b.php
│ ├── reversal.php
│ ├── status.php
│ └── customer_name.php
├── README.md
├── README.en.md
└── composer.json
🛠 Requisitos
· PHP 7.4 ou superior · Extensão OpenSSL habilitada · Composer (para instalação via pacote) · Credenciais M-PESA (sandbox ou produção)
🤝 Contribuição
- Faça um Fork do projeto
- Crie uma Branch para sua feature (git checkout -b feature/AmazingFeature)
- Commit suas mudanças (git commit -m 'Add some AmazingFeature')
- Push para a Branch (git push origin feature/AmazingFeature)
- Abra um Pull Request
📄 Licença
Distribuído sob licença GPL v3. Veja LICENSE para mais informações.
🆘 Suporte
· Reportar issues: GitHub Issues · Documentação M-PESA: https://developer.mpesa.vm.co.mz/
Desenvolvido com ❤️ para a comunidade Moçambicana de desenvolvedores.
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2025-12-09