teamtnt / php-stripe-webhook-tester
用于本地测试Stripe Webhooks的PHP包
v1.3.0
2019-09-23 06:57 UTC
Requires
- php: >=5.5.0
- guzzlehttp/guzzle: ^6.1
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
README
该包的目标是使在本地机器上测试Stripe Webhooks变得简单,无需使用ngrok或其他类似隧道服务。该包将模拟向指定的端点发送包含事件数据的JSON的post
请求,并确保您的应用程序做出相应的反应。
安装
通过Composer
$ composer require TeamTNT/php-stripe-webhook-tester
用法
$tester = new TeamTNT\Stripe\WebhookTester(); $tester->setVersion('2018-05-21'); $tester->setEndpoint('http://local.dev/stripe/webhooks'); $response = $tester->triggerEvent('charge.succeeded');
为了方便起见,您可以使用链式方法
$tester = new TeamTNT\Stripe\WebhookTester('http://local.dev/stripe/webhooks); $response = $tester->setVersion('2014-09-08')->triggerEvent('charge.succeeded');
Laravel集成
为了使用Laravel Cashier实现此包,您需要在Laravel\Cashier\WebhookController
中重写eventExistsOnStripe()
方法,如下所示
protected function eventExistsOnStripe($id) { if(App::environment() == 'testing' or App::environment() == 'local') { return true; } try { return ! is_null(StripeEvent::retrieve($id, Config::get('services.stripe.secret'))); } catch (Exception $e) { return false; } }
如果没有环境检查,Cashier将尝试验证模拟的事件是否是有效的Stripe Webhook,这显然会失败。
可用的版本和事件
可用的版本和事件可以在webhooks目录中找到
测试
$ phpunit
贡献
有关详细信息,请参阅CONTRIBUTING
鸣谢
许可协议
MIT许可协议(MIT)。有关更多信息,请参阅许可文件