knox/mpesa-rest

该包最新版本(v1.5.8)没有可用的许可信息。

Laravel 包实现 MPESA REST API

v1.5.8 2023-03-15 11:27 UTC

This package is auto-updated.

Last update: 2024-09-15 14:50:43 UTC


README

MPESA REST API 的 Laravel 包

安装

使用 Composer 安装此包

在您的项目目录内部命令行中,只需输入

composer require knox/mpesa-rest

更新您的配置

注意:从 Laravel 5.5 开始,由于自动发现,以下步骤可以省略

将服务提供者添加到 config/app.php 中的 providers 数组

Knox\MPESA\MpesaServiceProvider::class

将外观添加到 config/app.php 中的 aliases 数组

'MPESA' => Knox\MPESA\Facades\MPESA::class

发布包配置

通过运行提供的控制台命令发布配置文件和迁移

php artisan vendor:publish --provider="Knox\MPESA\MpesaServiceProvider"

设置

环境变量

MPESA_ENV='live' 表示生产环境,'test' 表示沙盒环境
MPESA_VERSION='v1' 或 'v2'
MPESA_CONSUMER_KEY=消费者密钥
MPESA_CONSUMER_SECRET=消费者密钥
MPESA_IDENTIFIER=shortcode 短码或终端
MPESA_SHORT_CODE=短码
MPESA_PASSKEY=密钥

MPESA_INITIATOR_NAME=发起者用户名
MPESA_INITIATOR_PASSWORD=发起者密码

MPESA_B2C_TIMEOUT_URL=您的网站中的 URL
MPESA_B2C_RESULT_URL=您的网站中的 URL
MPESA_B2B_TIMEOUT_URL=您的网站中的 URL
MPESA_B2B_RESULT_URL=您的网站中的 URL

MPESA_STK_CALLBACK_URL=您的网站中的 URL
MPESA_C2B_VALIDATION_URL=您的网站中的 URL
MPESA_C2B_CONFIRMATION_URL=您的网站中的 URL

MPESA_ACCOUNT_BALANCE_TIMEOUT_URL=您的网站中的 URL
MPESA_ACCOUNT_BALANCE_CONFIRMATION_URL=您的网站中的 URL

MPESA_REVERSAL_TIMEOUT_URL=您的网站中的 URL
MPESA_REVERSAL_CONFIRMATION_URL=您的网站中的 URL

MPESA_TRANSACTION_STATUS_TIMEOUT_URL=您的网站中的 URL
MPESA_TRANSACTION_STATUS_CONFIRMATION_URL=您的网站中的 URL

MPESA_IDENTITY_CALLBACK_URL=您的网站中的 URL

使用方法

在控制器顶部包含外观
use MPESA;

C2B URL 注册

如果您尚未注册 mpesa URL 回调,请使用以下内容

use MPESA;
use Illuminate\Http\Request;

class PaymentsController extends Controller
{
    public function registerURL(){
        $mpesa = MPESA::registerC2bUrl();
    }
}

可能的操作

<!-- @param(phone_number, amount, payment_type, @remarks) -->
mpesa = MPESA::b2c('254700123456',10,'PromotionPayment', 'No Remarks');

<!-- @param(short_code, amount, command, sender_identifier, receiver_identifier, @remarks, @account = '') -->
mpesa = MPESA::b2b('600000',100,'BusinessPayBill',4,4, 'No Remarks',123456);

<!-- @param(short_code, amount, command, sender_identifier, receiver_identifier, @remarks, @account = '') -->
mpesa = MPESA::b2b('600000',100,'BusinessBuyGoods',4,4, 'No Remarks');

<!-- @param() -->
mpesa = MPESA::registerC2bUrl();

<!-- @param(phone, amount, command, account, @short_code) -->
mpesa = MPESA::c2bSimulate('254700123456',100,'CustomerPayBillOnline','123456');
mpesa = MPESA::c2bSimulate('254700123456',1000,'CustomerBuyGoodsOnline');

<!-- @param(@remarks) -->
mpesa = MPESA::getAccountBalance();

<!-- @param(transaction, amount, receiver = null, receiver_identifier = 11, @remarks, @occassion) -->
mpesa = MPESA::doReversal('ND893KKHX1', 100, 602984, 4);

<!-- @param(phone, amount, account, @description) -->
mpesa = MPESA::stkPush('254700123456', 1000, 'Account 123');

<!-- @param(checkout_request_id) -->
mpesa = MPESA::stkQuery('ws_CO_14092017184227664');

<!-- @param(transaction, party = '', identifier_type = '4', @remarks, @occassion) -->
mpesa = MPESA::getTransactionStatus('ND893KKHX1', null,4);

示例响应处理程序

public function c2bConfirmation(Request $request)
{
    $response = json_decode($request->getContent(), true);
    $mpesa_transaction_id = $response['TransID'];
    $date_time = Carbon::parse($response['TransTime']);
    $amount = $response['TransAmount'];
    $account = strtoupper(preg_replace('/\s+/', '', $response['BillRefNumber']));
    $merchant_transaction_id = $response['ThirdPartyTransID'];
    $phone = $response['MSISDN'];
    $payer = preg_replace('!\s+!', ' ', ucwords(strtolower($response['FirstName'] . ' ' . $response['MiddleName'] . ' ' . $response['LastName'])));
}

全部完成

欢迎报告任何问题