akika/laravel-mpesa-multivendor
一个用于在单个应用程序中集成多个Mpesa短码的Laravel包,允许多个供应商无缝进行Mpesa交易
Requires
- php: ^8.0|^8.1|^8.2
- guzzlehttp/guzzle: ^7.5
- illuminate/http: ^8.0 | ^9.0 | ^10.0 | ^11.0
- illuminate/support: ^8.0 | ^9.0 | ^10.0 | ^11.0
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=
值可以是production
或sandbox
注意: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可以是
CustomerPayBillOnline
或CustomerBuyGoodsOnline
,如果未设置,则包将假设为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文件。