将 Stripe Webhooks 与 Laravel 代客一起使用

Using Stripe Webhooks with Laravel Valet

场景

我正在尝试使用 stripe 在我的应用程序上设置付款,但是当我尝试设置 webhooks 时它会抛出错误,因为它试图发送到技术上不存在的站点(因为它存在于本地).

显然在内部我可以提供域名,但从外部来源 "mysite.test" 不存在。

有没有办法获取我的特定 laravel 代客站点的 IP 地址/端口?我尝试 ping "mysite.test" 并返回 127.0.0.1 但我的猜测是代客服务器不是特定网站,因为我厌倦了 link 条纹。

有问题的错误:"Test webhook error: Domain unknown"

您的服务器在本地运行,因此不存在于外部。要修复此问题,您必须使用一种工具,让世界其他地方连接到您的本地服务器。为此,我会推荐 ngrok

Stripe 现在提供了一个 CLI,可以在 Laravel Valet 中轻松处理 Webhook。这里解释了一些陷阱:https://timleland.com/how-to-use-stripe-cli-with-laravel-valet/

  1. 安装 Stripe CLI:brew install stripe/stripe-cli/stripe
  2. 使用测试密钥验证 Stripe CLI:stripe login –api-key sk_test_xxxxxxxxxxxxxx
  3. 编辑您的主机文件:sudo nano /private/etc/hosts 并为您的本地站点添加主机记录:127.0.0.1 AddYourSiteHere.test
  4. 刷新您的 DNS:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  5. 运行 条带化 CLI 以侦听 webhooks:stripe listen –skip-verify –forward-to https://AddYourSiteHere.test/stripe/webhook
  6. 确保 STRIPE_WEBHOOK_SECRET env 值与第 5 步中 Stripe CLI 的输出匹配。
  7. 您的 webhook 现在应该可以在本地运行了。