tumainimosha / laravel-mpesa-push
Laravel 包用于TZ Mpesa USSD Push集成
0.3.1
2023-09-24 18:14 UTC
Requires
- php: >=7.1.3
- ext-soap: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.13
- fzaninotto/faker: ^1.9@dev
- illuminate/support: ^5.8@dev
- mockery/mockery: ^1.2@dev
- orchestra/database: ^3.8@dev
- orchestra/testbench: ^3.8@dev
- phpunit/phpunit: ^7.4@dev
This package is auto-updated.
Last update: 2024-09-09 08:37:57 UTC
README
安装
通过composer安装
composer require tumainimosha/laravel-mpesa-push
发布配置文件
发布配置文件以自定义默认包配置。
php artisan vendor:publish --provider="Tumainimosha\MpesaPush\MpesaPushServiceProvider" --tag="config"
发布迁移
php artisan vendor:publish --provider="Tumainimosha\MpesaPush\MpesaPushServiceProvider" --tag="migrations" php artisan migrate
配置
身份验证
在.env
文件中配置您的API用户名和密码,如下所示
TZ_MPESA_PUSH_SSL_CERT_PASSWORD=secret TZ_MPESA_PUSH_USERNAME=123123 TZ_MPESA_PUSH_PASSWORD=VeryStrongPasswd TZ_MPESA_PUSH_BUSINESS_NAME=FooCompany TZ_MPESA_PUSH_BUSINESS_NUMBER=123123
其他配置可以在该包发布的配置文件中找到。选项都有详细的注释 😊
使用方法
use Tumainimosha\MpesaPush\MpesaPush; ... public function testPush() { // Resolve service object $push = MpesaPush::instance(); $customerMsisdn = '<substitute valid mpesa-tz number>'; $amount = 250; $txnId = str_random('20'); $responseCode = $push->postRequest($customerMsisdn, $amount, $txnId); // Check for response code // Valid response codes // '0' - Success (note: response code is string '0' not numeric 0) // 'Duplicate' - Duplicate transaction ID // Others - fail }
处理回调
默认情况下,此包将交易存储在mpesa_push_transactions
表中,并在收到回调时更新其状态。
但是,您可能在收到回调后需要在自己的应用程序中执行进一步的操作,通过监听在回调时触发的MpesaCallbackReceived::class
事件。
您需要实现自己的事件监听器来监听此事件,并在收到回调后执行任何额外的步骤。
该事件有一个公开属性$transaction
,其中包含包括状态在内的交易参数
// EventServiceProvider.php protected $listen = [ ... \Tumainimosha\MpesaPush\Events\MpesaCallbackReceived::class => [ \App\Listeners\MpesaCallbackReceivedHandler::class, ], ]; // MpesaCallbackReceivedHandler.php public function handle(MpesaCallbackReceived $event) { $transaction = $event->transaction; // do your custom logic here }
在运行时自定义配置值
此服务提供流畅的设置器,以便在您的用例需要时在运行时更改配置值。
此类用例可能是当您在同一项目中拥有多个账户,并从数据库中获取您的配置值时。
// $account here could be a Model fetched from db with account attributes $pushService = MpesaPush::instance(); $pushService->setUsername($account->username) ->setPassword($account->password) ->setBusinessName($account->business_name) ->setBusinessNumber($account->business_number) ->setCommand($account->command); $pushService->postRequest($customerMsisdn, $amount, $txnId);
测试
使用以下命令运行测试
vendor/bin/phpunit
贡献
有关详细信息,请参阅CONTRIBUTING
待办事项
- 登录
- 推送交易请求
- 回调处理
- 更多文档和示例
- 单元测试
** 需要帮助改进文档和单元测试。欢迎提交Pull Requests。
安全
如果您发现任何与安全相关的问题,请通过电子邮件princeton.mosha@gmail.com联系,而不是使用问题跟踪器。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件