iankumu / mpesa
一个帮助您将 Mpesa API 集成到 Laravel 项目的包
1.3.6
2024-05-17 13:26 UTC
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
Requires (Dev)
- orchestra/testbench: ^6.0 | ^7.0 | ^8.0 |^9.0
- pestphp/pest: ^1.0 |^2.0
- phpunit/phpunit: ^9.0 | ^10.0 | ^11.0
README
Laravel 的 Mpesa 包
这是一个 Laravel 包,用于集成 Mpesa Daraja Apis。此包允许您轻松地将 Mpesa Daraja Apis 集成到您的 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 端点。
// 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 许可协议授权。