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
本包的目标是在不使用 ngrok 或其他类似隧道服务的情况下,简化本地机器上测试 Stripe Webhooks。该包将模拟一个包含事件数据的 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)。有关更多信息,请参阅 许可文件