用 Webhook 触发操作
如何用 Webhook 响应离线支付事件。
Webhook 是一个 HTTP 端点,用于从 Stripe 接收事件。
通过 Webhook,您可以接收付款流程以外发生的支付事件的通知,例如:
- 成功的付款 (
payment_
)intent. succeeded - 有争议的付款 (
charge.
)dispute. created - Stripe 账户可用余额 (
balance.
)available
您可以使用管理平台进行一次性操作,例如退款或更新客户信息,尽管 Webhook 可以扩展您的支付集成和处理大量重要业务事件。
构建自己的 Webhook
可在自己的服务器上构建一个 Webhook 处理程序,用以管理您的所有线下付款流程。首先公开一个可以接收 Stripe 的请求的端点并用 CLI 在本地测试您的集成。来自 Stripe 的每个请求都会包含一个 Event 对象,其中引用了 Stripe 上修改的对象。
创建 Webhook 端点
在您的应用中添加新端点。您可通过检查请求体内发送的事件对象的 type
字段来操作某些事件。然后,您可以通过标准输出打印,确保您的 Webhook 能正常工作。
添加完新的端点后启动服务器。
安装并设置 Stripe CLI
For additional install options, see Get started with the Stripe CLI.
如果您安装着 Stripe CLI,则在命令行中运行 stripe login
,生成一个配对代码来关联到您的 Stripe 账户。按回车启动浏览器,登入您的 Stripe 账户来允许访问。生成的 API 有效期为 90 天。可在管理平台的 API 密钥下修改或删除密钥。
备注
您可以创建项目特定的配置,方法是在登录时和运行该项目的命令时包含 –project-name 标志。
测试
stripe login Your pairing code is: humour-nifty-finer-magic Press Enter to open up the browser (^C to quit)
如果要使用现有的 API 密钥,则使用 --api-key
标志:
stripe login --api-key
Your pairing code is: humour-nifty-finer-magic Press Enter to open up the browser (^C to quit)sk_test_4eC39HqLyjWDarjtT1zdp7dc
在本地测试 Webhook 端点
通过 listen
指令,用 CLI 将事件转到您的本地 Webhook 端点。
假设您的应用的运行端口是 4242,运行:
stripe listen --forward-to http://localhost:4242/webhook
在另一个终端选项卡中,用 trigger
CLI 指令触发一个模拟 Webhook 事件。
stripe trigger payment_intent.succeeded
您的 listen
选项卡中会显示以下事件:
[200 POST] OK payment_intent.succeeded
“PaymentIntent 已成功!”出现在您的服务器运行的终端选项卡中。
部署 Webhook 端点
准备好将 Webhook 端点部署到生产时,您需要进行以下操作:
用您的真实模式 API 密钥,而非测试模式的密钥。
在 Stripe 管理平台或用 API 配置 Webhook 端点。
在管理平台中配置端点时,请前往您的 Webhook 设置。
点击添加端点并输入您的端点的 URL、Stripe API 版本以及您想让 Stripe 发送的特定事件。
用管理平台内的端点视图中显示的新密钥替换掉您的应用中的 Webhook 端点。
您的应用现在可以进行真实收款了。有关配置 Webhook 端点的更多信息,请参阅 Webhook Endpoint API。如需在测试模式下进行测试,请查看我们的开发指南。