amoori / mpesa
一个帮助集成 Mpesa API 到 Laravel 项目的包
dev-main
2024-09-08 09:19 UTC
Requires
- php: ^7.4 | ^8.0 | ^8.1 | ^8.2
- guzzlehttp/guzzle: ^6.5| ^7.5
Requires (Dev)
- phpunit/phpunit: ^7.0| ^8.0 | ^9.0 | ^10.0 | ^11.0
This package is auto-updated.
Last update: 2024-09-08 09:19:35 UTC
README
Laravel 的 Mpesa 包
这是一个用于 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
这将发布 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 许可 许可。