safcom/mpesa

一个帮助您将Mpesa API集成到Laravel应用程序的包

v3.0.0 2024-09-22 14:51 UTC

This package is auto-updated.

Last update: 2024-09-22 17:58:41 UTC


README

一个帮助您将Mpesa API集成到Laravel应用程序的包

Laravel的Mpesa包

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

该包包含以下Daraja API的实现

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

安装

您可以通过composer安装此包

composer require safcom/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 Lipa na Mpesa Online transactiontype
        |------------------------------------------
        */
    'transactiontype' => env('TRANSACTION_TYPE', 'CustomerPayBillOnline'),

    /*-----------------------------------------
        |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中找到

测试

composer test

贡献

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

致谢

许可

此包是开源软件,受MIT许可证许可。