使用 PaymentIntents API 将产品添加到付款

dob*_*son 2 php stripe-payments

我刚刚使用他们的支付意图 API 通过 PHP 上的 stripe 设置了支付,却忘记了必须添加用户刚刚购买的产品/项目。

查看 API 参考,我没有看到任何可以将项目添加到付款意图中的内容,以便我可以检索稍后在 Webhook 中购买的内容。

我是否需要发挥自己的作用并以某种方式将项目添加到元数据数组中,或者我在这里缺少什么?

srm*_*ark 12

我正在使用node.js。这对我有用:

脚步

  1. 创建客户对象
  2. 创建发票项目
  3. 创建发票
  4. 完成发票(返回付款意图 ID,但不是秘密)
  5. 通过id检索支付意图对象(必须使用密钥)。

第 5 步响应将包含client_secret可发送给客户端以进行付款捕获的值。

Nodes.js 代码

const customer = ...
const invoiceItem = await stripe.invoiceItems.create({
  customer: ...
  price_data: { ... }
})
const invoice = await stripe.invoices.create({
  customer: ...
})
const finalInvoice = await stripe.invoices.finalizeInvoice(
  invoice.id
)
const paymentIntent = await stripe.paymentIntents.retrieve(
  finalInvoice.payment_intent
)

res.send({ secret: paymentIntent.client_secret })
Run Code Online (Sandbox Code Playgroud)


小智 5

PaymentIntents 不跟踪与购买相关的任何类型的产品(仅跟踪金额)。为了将产品链接到付款,您需要使用发票,发票将在流程中生成 PaymentIntent。

  • 看起来您必须 (1) 创建发票,(2) 为订单中的每个产品创建发票项目,(3) 完成发票以获取 PaymentIntent,以及 (4) 使用 PaymentMethod 确认意图。如果他们在创建 PaymentIntent 时添加 line_items 参数会更容易。 (11认同)