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

时间:2020-01-10 18:16:38

标签: php stripe-payments

我刚刚使用他们的付款意图API在PHP上通过条带设置付款,却忘记了必须添加用户刚刚购买的产品/商品。

通过API参考查看,我看不到可以在其中添加项目的任何地方,因此我可以检索以后在Webhook中购买的内容。

我需要自己做些魔术,然后以某种方式将这些项目添加到元数据数组中吗?或者我在这里缺少什么?

2 个答案:

答案 0 :(得分:4)

PaymentIntents不会跟踪与购买相关的任何类型的产品(只是金额)。为了将产品链接到付款,您需要use Invoices,这将在该过程中生成PaymentIntent。

答案 1 :(得分:0)

我正在使用 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 })