gpt4 book ai didi

stripe-payments - 使用 API ID 通过 Stripe 支付一次

转载 作者:行者123 更新时间:2023-12-05 09:37:09 43 4
gpt4 key购买 nike

我已经使用 Stripe 创建了订阅服务。我可以订阅用户使用定期付款。这是相关代码(节点):

  // Create the subscription
const subscription = await stripe.subscriptions.create({
customer: req.body.customerId,
items: [{ price: req.body.priceId }],
expand: ['latest_invoice.payment_intent'],
});

这有效并使用仪表板中显示的 priceId:

enter image description here

但是,当我销售的产品不是经常性的时,它就会崩溃。我收到错误:

The price specified is set to `type=one_time` but this field only accepts prices with `type=recurring`

我理解错误,但我不确定是否可以将订阅设置为不重复。

我的应用有 3 层:

  • 一次
  • 每月
  • 每年

理想情况下,我不想添加一个全新的代码段来处理看起来像是订阅功能的一个子集,但即使我这样做了,paymentIntent 对象似乎只需要一个数量而不是 API ID,如图所示。有什么方法可以使用我已经构建的基础设施来做到这一点吗?

最佳答案

您不能使用非经常性价格创建订阅,而是使用 PaymentIntent 进行一次性付款。

价格适用于订阅和 Checkout 产品,但您仍然可以将其中的数据用于 PaymentIntents。例如:

// get the price 
const price = await stripe.prices.retrieve(req.body.priceId);

// check if the price is recurring or not
if (price.recurring !== null) {
// Create the subscription
const subscription = await stripe.subscriptions.create({
customer: req.body.customerId,
items: [{ price: req.body.priceId }],
expand: ['latest_invoice.payment_intent'],
});

// do something with the subscription

} else {
const pi = await stripe.paymentIntents.create({
customer: req.body.customerId,
currency: 'usd',
amount: price.unit_amount,
});

// do something with the PaymentIntent
}

关于stripe-payments - 使用 API ID 通过 Stripe 支付一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64564391/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com