murage/mpesa

Mpesa API 的 PHP 包

1.0.5 2018-02-22 06:23 UTC

This package is auto-updated.

Last update: 2024-09-13 20:21:09 UTC


README

简介

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

使用 composer 安装
composer require safaricom/mpesa

配置
在项目根目录下创建一个 .env 文件,并在其中设置消费者密钥和消费者密钥,如下所示
consumer_key= [消费者密钥]
consumer_secret=[消费者密钥]
application_status=[生产或沙盒]
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 推送模拟

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

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

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

STK 推送状态查询

用于检查 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();