总金额为 0$ 的条纹 paymentRequest

stripe paymentRequest with total amount 0$

当我尝试使用付款请求按钮进行付款时,我需要在为其创建付款意向时将金额设置为 0 美元,但我不能,因为创建付款意向条带至少需要 0.50 美元。我需要它,因为我将它用于计量订阅类型,并且在订阅时不必向客户收费。我找到了订阅成功后退款的解决方案,但我不喜欢它。 我正在用这个 api

创建 payment_intent
app.post('/api/client-secret', async (req, res) => {
  try {
    const { currency, amount } = req.body;
    console.log(req.body)
    const paymentIntent = await stripe.paymentIntents.create({
      amount,
      currency: 'usd',
      payment_method_types: ['card'],
    });
  
    res.json({ clientSecret: paymentIntent.client_secret });
  } catch (error) {
    console.log("error1", error)
  }
});

也许有其他方式或方法可以为 stripe.paymentRequest()

创建 client_secret

payment_intent object has a field called capture_method。您可以设置此 manual,在这种情况下,条带不会立即捕获付款。注意括号:

(并非所有付款方式都支持此)


换句话说,如果这是订阅,那么为什么不使用 subscription api or even better, sessions. I suggest sessions because it handles all sorts of issues that may arise during a transaction, and all you need to do is wait for the session to complete,一切都会得到处理。

另请注意,price object (which represents the items you are selling) comes with a field called usage_type 允许您指定商品是 计量的 ,因此如果有人购买该商品,stripe 可以为您处理账单。

条带 api 内容丰富且有据可查,所以我希望这个答案能帮助您快速找到解决方案。

如果您不预先向用户收费,您应该使用 SetupIntents 保存并向客户附加银行卡详细信息,以便将来在他们离线时向他们收费:https://stripe.com/docs/payments/save-and-reuse