akika/laravel-mpesa-multivendor

一个用于在单个应用程序中集成多个Mpesa短码的Laravel包,允许多个供应商无缝进行Mpesa交易

v0.0.6 2024-06-18 05:25 UTC

This package is auto-updated.

Last update: 2024-09-18 05:57:55 UTC


README

此Laravel包提供方便的方法,将Mpesa Daraja API的功能集成到您的Laravel应用程序中。该包允许使用多个短码。它还包括最新的Tax Remmitance和Bill Manager API。

安装

您可以通过composer安装此包

composer require akika/laravel-mpesa-multivendor

安装包后,使用以下命令发布配置文件

php artisan mpesa:install

这将生成一个位于您的config目录下的mpesa.php文件,您可以在其中设置您的Mpesa凭证和其他配置选项。

.env文件设置

将以下配置添加到.env文件中

MPESA_ENV=

值可以是productionsandbox

注意:mpesa.php配置文件将默认的MPESA_ENV值设置为sandbox。这将始终加载沙箱URL。

函数响应

所有响应(除了令牌生成响应外)都符合在Daraja门户上记录的响应。

用法

初始化Mpesa

use Akika\LaravelMpesaMultivendor\Mpesa;

$mpesa = new Mpesa($mpesaShortcode, $consumerKey, $consumerSecret, $apiUsername, $apiPassword);
  • $mpesaShortcode: 当前操作要使用的短码
  • $consumerKey: 从Daraja门户获得
  • $consumerSecret: 从Daraja门户获得
  • $apiUsername: Mpesa门户API用户的用户名
  • $apiPassword: Mpesa门户API用户的密码

重要URL

Daraja使用两个主要URL进行回调。超时URL和结果URL。这两个URL也将在此包中使用,如下所示

  • $resultUrl : 成功时发送结果的端点
  • $timeoutUrl : 操作超时时发送结果的端点

获取令牌

您可以通过以下方式获取Mpesa API调用所需的令牌

$token = $mpesa->getToken();

获取账户余额

您可以通过以下方式获取Mpesa账户余额

$balance = $mpesa->getBalance($resultUrl, $timeoutUrl);

C2B交易

为C2B交易注册URL

您可以为C2B交易注册验证和确认URL

$response = $mpesa->c2bRegisterUrl($confirmationUrl, $validationUrl);

#### Simulating C2B Transactions

You can simulate payment requests from clients:

```php
$response = $mpesa->c2bSimulate($amount, $phoneNumber, $billRefNumber, $commandID);
  • $commandID可以是CustomerPayBillOnlineCustomerBuyGoodsOnline,如果未设置,则包将假设为CustomerPayBillOnline

初始化STK Push

您可以代表客户发起在线支付

$response = $mpesa->stkPush($accountNumber, $phoneNumber, $amount, $callbackUrl, $transactionDesc);
  • $transactionDesc可以是null

查询STK Push状态

您可以查询STK Push交易的最终结果

$response = $mpesa->stkPushStatus($checkoutRequestID);

撤销交易

您可以撤销C2B M-Pesa交易

$response = $mpesa->reverse($transactionId, $amount, $receiverShortCode, $remarks, $resultUrl, $timeoutUrl, $ocassion);
  • $ocassion是可选字段

企业到客户(B2C)交易

您可以执行企业到客户交易

$response = $mpesa->b2cTransaction($oversationId, $commandID, $msisdn, $amount, $remarks, $resultUrl, $timeoutUrl, $ocassion);
  • $ocassion是可选字段。

企业到企业(B2B)交易

您可以执行企业到企业交易

$response = $mpesa->b2bPaybill($destShortcode, $amount, $remarks, $accountNumber, $resultUrl, $timeoutUrl, $requester);
  • $requester是可选字段。

二维码生成

您可以为付款生成二维码

$response = $mpesa->dynamicQR($merchantName, $refNo, $trxCode, $cpi, $size, $amount = null);
  • $amount是可选字段

账单管理器

您可以选择账单管理器服务并发送发票

$response = $mpesa->billManagerOptin($email, $phoneNumber, $sendReminders, $logoUrl, $callbackUrl);
  • $sendReminders是布尔字段。允许true或false

$response = $mpesa->sendInvoice($reference, $billedTo, $phoneNumber, $billingPeriod, $invoiceName, $dueDate, $amount, $items);

税务汇款

您可以向政府汇款税务

$response = $mpesa->taxRemittance($amount, $receiverShortCode, $accountReference, $remarks, $resultUrl, $timeoutUrl);

许可证

Laravel Mpesa包是开源软件,使用MIT许可证授权。有关详细信息,请参阅LICENSE文件。