safaricom/mpesa

一个用于Mpesa API的PHP包

安装次数: 46,202

依赖项: 1

建议者: 0

安全性: 0

星标: 187

关注者: 50

分支: 216

开放问题: 28

类型:

1.0.8 2019-01-06 16:01 UTC

This package is not auto-updated.

Last update: 2024-09-21 17:26:33 UTC


README

介绍

此包旨在帮助PHP开发者轻松实现各种Mpesa API。它基于REST API,其文档可在https://developer.safaricom.co.ke找到。

使用composer安装
composer require safaricom/mpesa

配置
在项目根目录下创建一个.env文件,并在其中设置消费者密钥和消费者密钥如下
MPESA_CONSUMER_KEY= [消费者密钥]
MPESA_CONSUMER_SECRET=[消费者密钥]
MPESA_ENV=[实时或沙盒]
Laravel用户,请打开Config/App.php文件,在providers下添加\Safaricom\Mpesa\MpesaServiceProvider::class,在aliases下添加 'Mpesa'=> \Safaricom\Mpesa\MpesaServiceProvider::class

记住在切换沙盒和实时时,适当编辑消费者密钥和消费者密钥的值

用法

确认和验证URL

B2C付款请求

这将在M-Pesa短码与M-Pesa上注册的手机号之间创建交易。

$mpesa= new \Safaricom\Mpesa\Mpesa();

$b2cTransaction=$mpesa->b2c($InitiatorName, $SecurityCredential, $CommandID, $Amount, $PartyA, $PartyB, $Remarks, $QueueTimeOutURL, $ResultURL, $Occasion);

账户余额请求

用于查询M-Pesa BuyGoods (收银机号)的余额。

$mpesa= new \Safaricom\Mpesa\Mpesa();

$balanceInquiry=$mpesa->accountBalance($CommandID, $Initiator, $SecurityCredential, $PartyA, $IdentifierType, $Remarks, $QueueTimeOutURL, $ResultURL);

交易状态请求 这用于检查交易状态。

$mpesa= new \Safaricom\Mpesa\Mpesa();

$trasactionStatus=$mpesa->transactionStatus($Initiator, $SecurityCredential, $CommandID, $TransactionID, $PartyA, $IdentifierType, $ResultURL, $QueueTimeOutURL, $Remarks, $Occasion);

B2B付款请求

用于在两家公司之间转账资金。

$mpesa= new \Safaricom\Mpesa\Mpesa();

$b2bTransaction=$mpesa->b2b($ShortCode, $CommandID, $Amount, $Msisdn, $BillRefNumber );

C2B付款请求

用于模拟客户与企业之间的资金转账。

$mpesa= new \Safaricom\Mpesa\Mpesa();

$b2bTransaction=$mpesa->c2b($ShortCode, $CommandID, $Amount, $Msisdn, $BillRefNumber );

注意,您应该已经注册了验证和确认URL,以便将回调响应发送到这些URL。

STK Push模拟

用于代表客户启动在线支付。

$mpesa= new \Safaricom\Mpesa\Mpesa();

$stkPushSimulation=$mpesa->STKPushSimulation($BusinessShortCode, $LipaNaMpesaPasskey, $TransactionType, $Amount, $PartyA, $PartyB, $PhoneNumber, $CallBackURL, $AccountReference, $TransactionDesc, $Remarks);

STK Push状态查询

用于检查Lipa Na M-Pesa在线支付的状态。

$mpesa= new \Safaricom\Mpesa\Mpesa();

$STKPushRequestStatus=$mpesa->STKPushQuery($checkoutRequestID,$businessShortCode,$password,$timestamp);

回调路由 M-Pesa API是异步的。当API网关接收到有效的M-Pesa API请求时,它会发送到M-Pesa,并在队列中添加。M-Pesa然后处理队列中的请求,并将响应发送到API网关,API网关再将响应转发到在CallBackURL或ResultURL请求参数中注册的URL。当M-Pesa接收到的请求数量超过队列可以处理的数量时,M-Pesa将拒绝更多的请求,并API网关将向在QueueTimeOutURL请求参数中注册的URL发送队列超时响应。

从回调中获取post数据 这用于从回调中获取json格式的post数据。可以将数据解码并存储在数据库中。

$mpesa= new \Safaricom\Mpesa\Mpesa();

$callbackData=$mpesa->getDataFromCallback();

完成交易 在从回调中获取Post数据后,在回调路由的末尾使用此方法来完成交易

$mpesa= new \Safaricom\Mpesa\Mpesa();

$callbackData=$mpesa->finishTransaction();

如果验证失败,将 false 传递给 finishTransaction()

$mpesa= new \Safaricom\Mpesa\Mpesa();

$callbackData=$mpesa->finishTransaction(false);