You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于SAPUI5/Fiori与Node.js,Stripe支付成功后如何获取receipt_url?

通过Payment Intent ID获取Stripe支付凭证receipt_url

核心结论

可以直接通过Payment Intent ID获取receipt_url,无需单独查询Charge对象,具体实现如下:


1. 后端查询Payment Intent提取receipt_url

支付成功后(无论是前端确认支付完成,还是通过Stripe Webhook收到payment_intent.succeeded事件),在Node.js后端调用Stripe的Payment Intent查询接口,从返回的完整对象中提取关联Charge的receipt_url。

示例代码:

// 传入已完成支付的Payment Intent ID
const paymentIntentId = "pi_xxxxxxxxxxxx";

// 查询Payment Intent详情
const paymentIntent = await stripe.paymentIntents.retrieve(
  paymentIntentId,
  { apiKey: secretKey }
);

// 提取第一个关联Charge的receipt_url(支付成功后必然存在)
const receiptUrl = paymentIntent.charges.data[0].receipt_url;

// 返回给前端用于重定向
res.send({ receiptUrl });

2. 为什么创建Payment Intent时拿不到receipt_url?

receipt_url是支付成功后Stripe才生成的凭证链接,创建Payment Intent时支付流程尚未完成,因此该字段不会出现在创建接口的响应中,必须等待支付状态变为succeeded后才能获取。

3. 推荐的生产级流程

  • Webhook监听方案(更可靠):在Stripe后台配置Webhook,监听payment_intent.succeeded事件,收到事件后将receipt_url存入你的业务数据库,前端后续通过查询接口获取该链接。
  • 前端触发查询方案:前端完成支付后,调用后端接口传入Payment Intent ID,后端验证支付状态为succeeded后返回receipt_url,前端立即跳转。

内容的提问来源于stack exchange,提问作者Saurabh V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:31:04