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 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许可证下授权。