卡班吉 / mpesa
M-Pesa API 实现
Requires
- php: >=5.6.0
Requires (Dev)
- jesseschalken/autoload-generator: ^0.2.3
- mockery/mockery: dev-master
- phpunit/phpunit: ~5.7|~6.2
README
这是一个用于 Safaricom 的 M-Pesa REST API(名为 DARAJA API)的 PHP 包。
如果您正在寻找 Laravel 实现,请检查以下仓库 Laravel 实现
安装
本项目支持 composer 依赖管理工具,也可以在不使用 composer 的情况下使用。
使用 Composer
- 运行以下命令
composer require kabangi/mpesa
不使用 Composer
-
下载已压缩的源代码
-
按照以下说明操作
<?php
require "{PATHTOTHISLIBFOLDER}/src/autoload.php";
use Kabangi\Mpesa\Init as Mpesa;
配置
库附带了一个基于您打算使用的 API 的结构化配置文件。
要添加必要的配置:
-
打开安装文件夹。
-
查找名为
config/mpesa.php
的文件 -
编辑反映您所使用产品的必要键。
使用
<?php
require "../src/autoload.php";
use Kabangi\Mpesa\Init as Mpesa;
// You can also pass your own config here.
// Check the folder ./config/mpesa.php for reference
$mpesa = new Mpesa();
try {
$response = $mpesa->STKPush([
'amount' => 10,
'transactionDesc' => '',
'phoneNumber' => '',
]);
$response = $mpesa->B2C([
'amount' => 10,
'accountReference' => '12',
'callBackURL' => 'https://example.com/v1/payments/C2B/confirmation',
'queueTimeOutURL' => 'https://example.com/v1/payments/C2B/confirmation',
'resultURL' => 'https://example.com/v1/payments/C2B/confirmation',
'Remarks' => 'Test'
]);
// $mpesa->STKStatus([]);
// $mpesa->C2BRegister([]);
// $mpesa->STKPush([]);
// $mpesa->C2BSimulate([]);
// $mpesa->B2C([])
// $mpesa->B2B([]);
// $mpesa->accountBalance([])
// $mpesa->reversal([]);
// $mpesa->transactionStatus([]);
// $mpesa->reversal([]);
}catch(\Exception $e){
$response = json_decode($e->getMessage());
}
header('Content-Type: application/json');
echo json_encode($response);
支持
需要使用此包的支持: 在此发送快速消息
支持的 API
库实现了 Safaricom 列出的所有公开端点:
1. Lipa na M-Pesa Online Payment
这是什么?
Lipa na M-Pesa Online Payment 端点(STK 推送)允许您请求您的用户/客户的付款。使用此端点,用户所需做的就是输入他们的 M-PESA PIN,然后发送付款给您。
如何实现它?
2. Lipa na M-Pesa Online Query Request
这是什么?
当您通过上述 Lipa na M-Pesa Online 端点从您的用户/客户请求付款时,您可能想知道该请求的状态。此端点可提供此功能。它允许您根据需要查询任何 STK 推送的状态。
如何实现它?
3. C2B
这是什么?
此端点使开发者能够在客户向商家的 Till 号码或 Paybill 号码付款时接收实时通知。它假设付款是通过 SIM 卡工具包进行的,作为开发者,您需要知道付款何时到达商家的 Till/ Paybill 号码,以便进行对账和会计。
如何实现它?
4. B2C
这是什么?
此端点允许商家从他们的 paybill 账户向客户付款。一些用例包括但不限于支付工资、支付客户的促销等。
如何实现它?
5. B2B
这是什么?
此端点允许商家在商业账户之间转移资金。
如何实现它?
6. 交易状态
这是什么?
此端点使开发者能够启动 B2B、B2C 和 C2B 交易的检查状态。当交易中的一方失败/声称未收到交易确认时,它非常有用。
如何实现它?
7. 反向 API
这是什么?
此端点使商家能够撤销B2B、B2C或C2B交易。它允许自动撤销错误支付到商家的支付账单/收银机号码,或未交付商品的支付。
如何实现它?
8. 账户余额
这是什么?
此端点使商家能够随时查询他们的收银机/支付账单号码账户余额。
如何实现它?
灵感来源
本包受到以下项目工作的启发:SmoDav在以下项目上的工作:https://github.com/SmoDav/mpesa
贡献者
感谢以下忍者在我集成过程中提供的帮助以及我在他们的帮助下或从他们的代码中学到的东西:
许可证
M-Pesa包是开源软件,根据MIT许可证授权。