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-08-23 18:31:04 UTC


README

Latest Version Software License Build Status Quality Score Total Downloads

本包的目标是在不使用 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)。有关更多信息,请参阅 许可文件