dkamunya/mpesa

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

dev-main 2024-03-07 12:19 UTC

This package is auto-updated.

Last update: 2024-09-07 13:31:42 UTC


README

Laravel Mpesa Package

Laravel的Mpesa包

Latest Version on Packagist GitHub Tests Action Status Total Downloads

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

该包包含以下Daraja API的实现

  • Lipa na Mpesa Express Online(STKPUSH)
  • 企业对客户(B2C)
  • 企业对企业(B2B)
  • 客户对企业(C2B)
  • 交易状态
  • 账户余额
  • 撤销

安装

您可以通过composer安装此包

composer require iankumu/mpesa

配置

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

php artisan mpesa:install

这将发布包含您的应用程序mpesa配置的config/mpesa.php文件。这些凭据可在您的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中找到

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

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

测试

composer test

贡献

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

鸣谢

许可

此包是一个开源软件,根据MIT许可证许可。