iankumu/mpesa

一个帮助集成Mpesa API到Laravel项目的包

1.3.6 2024-05-17 13:26 UTC

This package is auto-updated.

Last update: 2024-09-17 14:20:23 UTC


README

Laravel Mpesa Package

Laravel的Mpesa包

Latest Version on Packagist GitHub Tests Action Status Total Downloads

一个用于Laravel的Mpesa Daraja API的包。此包允许您轻松地将Mpesa Daraja API集成到Laravel应用程序中。

该包包含以下Daraja API的实现

  • Lipa na Mpesa Express Online(STKPUSH)
  • 商业到客户(B2C)
  • 商业到商业(B2B)
  • 客户到商业(C2B)
  • 交易状态
  • 账户余额
  • 冲销

安装

您可以通过composer安装此包

composer require iankumu/mpesa

配置

下一步是发布应用程序配置。运行以下命令

php artisan mpesa:install

这将发布config/mpesa.php文件,其中包含应用程序的mpesa配置。这些凭据可以在您的Safaricom开发者门户上找到。

您还需要指定应用程序的环境;是sandbox还是production,以便调用相关的API URL端点。

// config/mpesa.php
<?php

return [
    //This is the mpesa environment.Can be sanbox or production
    'environment' => env('MPESA_ENVIRONMENT', 'sandbox'),

    /*-----------------------------------------
        |The Mpesa Consumer Key
        |------------------------------------------
        */
    'mpesa_consumer_key' => env('MPESA_CONSUMER_KEY'),

    /*-----------------------------------------
        |The Mpesa Consumer Secret
        |------------------------------------------
        */
    'mpesa_consumer_secret' => env('MPESA_CONSUMER_SECRET'),

    /*-----------------------------------------
        |The Lipa na Mpesa Online Passkey
        |------------------------------------------
        */
    'passkey' => env('SAFARICOM_PASSKEY', 'bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919'),

    /*-----------------------------------------
        |The Lipa na Mpesa Online ShortCode
        |------------------------------------------
        */
    'shortcode' => env('MPESA_BUSINESS_SHORTCODE', '174379'),

    /*-----------------------------------------
        |The Mpesa Initator Name
        |------------------------------------------
        */
    'initiator_name' => env('MPESA_INITIATOR_NAME', 'testapi'),

    /*-----------------------------------------
        |The Mpesa Initator Password
        |------------------------------------------
        */
    'initiator_password' => env('MPESA_INITIATOR_PASSWORD'),

    /*-----------------------------------------
        |Mpesa B2C ShortCode
        |------------------------------------------
        */
    'b2c_shortcode' => env('MPESA_B2C_SHORTCODE'),

    /*-----------------------------------------
        |Mpesa C2B Validation url
        |------------------------------------------
        */
    'c2b_validation_url' => env('MPESA_C2B_VALIDATION_URL'),

    /*-----------------------------------------
        |Mpesa C2B Confirmation url
        |------------------------------------------
        */
    'c2b_confirmation_url' => env('MPESA_C2B_CONFIRMATION_URL'),

    /*-----------------------------------------
        |Mpesa B2C Result url
        |------------------------------------------
        */
    'b2c_result_url' => env('MPESA_B2C_RESULT_URL'),

    /*-----------------------------------------
        |Mpesa B2C Timeout url
        |------------------------------------------
        */
    'b2c_timeout_url' => env('MPESA_B2C_TIMEOUT_URL'),

    /*-----------------------------------------
        |Mpesa Lipa Na Mpesa callback url
        |------------------------------------------
        */
    'callback_url' => env('MPESA_CALLBACK_URL'),

    /*-----------------------------------------
        |Mpesa Transaction Status Result url
        |------------------------------------------
        */
    'status_result_url' => env('MPESA_STATUS_RESULT_URL'),

    /*-----------------------------------------
        |Mpesa Transaction Status Timeout url
        |------------------------------------------
        */
    'status_timeout_url' => env('MPESA_STATUS_TIMEOUT_URL'),

    /*-----------------------------------------
        |Mpesa Account Balance Result url
        |------------------------------------------
        */
    'balance_result_url' => env('MPESA_BALANCE_RESULT_URL'),

    /*-----------------------------------------
        |Mpesa Account Balance Timeout url
        |------------------------------------------
        */
    'balance_timeout_url' => env('MPESA_BALANCE_TIMEOUT_URL'),

    /*-----------------------------------------
        |Mpesa Reversal Result url
        |------------------------------------------
        */
    'reversal_result_url' => env('MPESA_REVERSAL_RESULT_URL'),

    /*-----------------------------------------
        |Mpesa Reversal Timeout url
        |------------------------------------------
        */
    'reversal_timeout_url' => env('MPESA_REVERSAL_TIMEOUT_URL'),
    /*-----------------------------------------
        |Mpesa B2B urls
        |------------------------------------------
     */
    'b2b_result_url' => env('MPESA_B2B_RESULT_URL'),

    'b2b_timeout_url' => env('MPESA_B2B_TIMEOUT_URL'),
];

出于安全原因,您需要在.env文件中定义您的API凭据。

您可以自由地自定义配置值。一个例子是将回调URL直接设置到配置文件中,而不是添加到.env文件中。

用法

代码示例和用法可以在Usage.md中找到

如果您喜欢逐步教程,可以阅读我写的关于如何将Mpesa集成到您的Laravel应用程序中的文章。

您还可以找到我创建的演示应用程序,它使用了此包。它提供了如何将Mpesa集成到Laravel应用程序中的起点。

测试

composer test

贡献

感谢您考虑为Laravel Mpesa做出贡献!所有贡献和PR都受到欢迎。您可以在这里阅读贡献指南。

鸣谢

许可证

此包是开源软件,在MIT许可证下授权。