teamtnt/php-stripe-webhook-tester

用于本地测试Stripe Webhooks的PHP包

v1.3.0 2019-09-23 06:57 UTC

This package is auto-updated.

Last update: 2024-09-23 18:36:56 UTC


README

Latest Version Software License Build Status Quality Score Total Downloads

该包的目标是使在本地机器上测试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)。有关更多信息,请参阅许可文件