Stripe Webhooks(网络钩子) 是实现真正的支付结果异步监听与自动状态变更。本文深入讲解如何配置 Stripe Webhooks,并在实际项目中实现订单状态的自动更新机制。
![图片[1]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618135538281-image.png)
一、什么是 Stripe Webhooks?
Webhooks 是 Stripe 向你服务器发送事件通知的一种机制。当某个事件,如付款成功、退款完成、订阅变更等发生时,Stripe 会向你预设的 URL(Webhook 端点)发送一个 POST 请求,包含事件详细信息。
使用 Webhooks 有哪些优势?
- 异步通知:不用用户跳转或刷新页面,也能获取订单状态。
- 实时更新:支付结果可以瞬时反馈,提高用户信任度。
- 稳定可靠:Stripe 会自动重试失败的 webhook 事件,确保消息到达。
- 扩展灵活:支持监听几十种事件类型,如
payment_intent.succeeded、charge.refunded、invoice.payment_failed等。
![图片[2]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618135627377-image.png)
二、如何配置 Stripe Webhook 端点?
第一步:进入 Webhook 配置页面
- 打开 Stripe 后台:https://dashboard.stripe.com
- 登录账户后,切换为测试模式(页面上方显示“测试模式”)在搜索栏中直接搜索 Webhook 即可快速创建
- 也可点击进入 Webhook 页面:
👉 https://dashboard.stripe.com/test/workbench/webhooks
![图片[3]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618143024899-image.png)
第二步:创建 Webhook 的“向导流程”
第一步选择侦听的事件类型
![图片[4]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618143722460-image.png)
推荐勾选的事件:
| 类别 | 推荐事件 | 说明 |
|---|---|---|
PaymentIntent | payment_intent.succeeded | 支付成功(常用于标记订单已支付) |
PaymentIntent | payment_intent.payment_failed | 支付失败 |
![图片[5]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618143928950-image.png)
选好后,点击页面右下角的紫色按钮:
👉 继续
第三步:配置 Webhook 端点信息
第 1 步:选择你要监听的事件(推荐选择):
- ✅
payment_intent.succeeded(支付成功) - ✅
payment_intent.payment_failed(支付失败)
第 2 步:选择接收端类型
- 选择Webhook端点,然后点继续
![图片[6]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618144231332-image.png)
第四步:填写配置接收端
在这一步你将看到一个表单,填写:
| 字段 | 内容 |
|---|---|
| 端点 URL(Endpoint URL) | 输入你的服务器接收地址,如:https://yourdomain.com/webhook/stripe |
| 描述(可选) | 如“订单状态更新监听” |
然后点击 “创建目的地“ 即可完成 Webhook 配置!
![图片[7]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618144555604-image.png)
![图片[8]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618144727494-image.png)
三、订单状态自动化更新流程
1. 客户提交订单并跳转支付
创建 PaymentIntent 时附加订单 ID:
\Stripe\PaymentIntent::create([
'amount' => 29900,
'currency' => 'usd',
'metadata' => ['order_id' => 'ORDER12345'],
]);
2. 客户完成支付,Stripe 自动触发 Webhook
事件如 payment_intent.succeeded 被触发,Stripe 将发送请求到你的 webhook 端点。
![图片[9]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618150551744-image.png)
![图片[10]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618145423620-image.png)
3. 后端解析事件,更新订单状态
运用 $event->type 区分事件,调用系统的订单更新逻辑(数据库写入、日志记录、通知发送等)。
4. 自动通知客户
在 webhook 接收逻辑中还可以:
- 发送支付成功邮件
- 推送站内通知
- 通知发货系统准备物流
四、安全性与调试建议
1. 验证 Stripe 签名
建议启用 webhook 的签名验证,确保数据来源真实可靠。密钥签名可在 Stripe 后台 Webhook 配置页中找到。
![图片[11]-如何使用 Stripe Webhooks 实现订单状态自动更新](https://www.361sale.com/wp-content/uploads/2025/06/20250618145725945-image.png)
2. 本地开发推荐使用 stripe-cli
使用命令工具把 Stripe 事件转发到本地服务器:
stripe listen --forward-to localhost:8000/webhook/stripe
还可以使用模拟测试特定事件:
stripe trigger payment_intent.succeeded
五、支持的常用事件推荐清单
| 事件类型 | 描述 |
|---|---|
payment_intent.succeeded | 支付成功,常用于确认订单 |
payment_intent.payment_failed | 支付失败,可用于重试提醒 |
charge.refunded | 退款完成,更新状态为已退款 |
checkout.session.completed | Checkout 支付成功(如用 Stripe Checkout) |
invoice.payment_succeeded | 订阅类账单支付成功 |
invoice.payment_failed | 自动续费失败 |
更多事件类型可参考官方文档:
https://stripe.com/docs/api/events/types
六、总结
Stripe Webhooks构建一个稳定、高效、不用人工介入的订单状态自动更新系统。无论是一次性支付、订阅服务、退款处理,Webhook 都可以帮助系统在第一时间做出响应,是现代电商系统的核心机制。
| 联系我们 | |
|---|---|
| 教程看不懂?联系我们为您免费解答!免费助力个人,小企站点! |
客服微信
|
| ① 电话:020-2206-9892 | |
| ② QQ咨询:1025174874 | |
| ③ 邮件:info@361sale.com | |
| ④ 工作时间:周一至周五,9:30-18:30,节假日休息 | |






















![表情[wozuimei]-光子波动网 | 专业WordPress修复服务,全球范围,快速响应](https://www.361sale.com/wp-content/themes/zibll/img/smilies/wozuimei.gif)
![表情[baoquan]-光子波动网 | 专业WordPress修复服务,全球范围,快速响应](https://www.361sale.com/wp-content/themes/zibll/img/smilies/baoquan.gif)

暂无评论内容