React Stripe 结帐多个行项目

Posted

技术标签:

【中文标题】React Stripe 结帐多个行项目【英文标题】:React Stripe checkout multiple line items 【发布时间】:2021-12-02 02:12:42 【问题描述】:

我有一个带有条带结账功能的 React 应用程序。但我需要在结账时通过多个项目来付款。现在再次它只适用于一项。但是我有一组称为“项目”的对象,需要一次性支付。处理这个问题的最佳方法是什么?所以如果你在我的代码中看到它是描述 Bounce House A 但项目数组可以有 [description: 'Bounce House A', amount:200,qty:2,description: 'Bounce House B', amount:250 ,数量:1。

这是我当前的代码:

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY)

export default async (req, res) => 
  const  id, amount  = req.body

  try 
    const payment = await stripe.paymentIntents.create(
      amount,
      currency: 'USD',
      description: 'Bounce House A',
      payment_method: id,
      confirm: true,
    )
    console.log(payment)

    return res.status(200).json(
      confirm: 'abc123',
    )
   catch (error) 

【问题讨论】:

【参考方案1】:

您必须将这些数组存储在您的数据库中,并使用一个单一的“订单 ID”,您可以将其传递到 metadata 下的 Stripe 的 PaymentIntent。这样,您就可以使用您设计的自定义订单 ID 查找与 PaymentIntent 关联的项目。

Stripe 的metadata 只能存储字符串键值对,因此您不能在其中存储数组。您可能能够以某种一致的格式将数组存储为字符串,从而允许您将其反序列化回数组,但我不建议这样做。

【讨论】:

我想知道是否只将 paymentID 存储在我的数据库中的订单表中,以防他们需要提供退款接口???另外,我如何至少在支付 api 中传递客户电子邮件?还有元数据? 您将客户电子邮件传递给客户 API,首先创建一个客户,然后在创建 PaymentIntent 时传递该客户 ID。元数据也是 PaymentIntents 上支持的参数:stripe.com/docs/api/payment_intents/…

以上是关于React Stripe 结帐多个行项目的主要内容,如果未能解决你的问题,请参考以下文章

条纹结帐键盘隐藏付款按钮

在Stripe + React中发生无效的挂钩调用错误

Firebase + stripe + react native 通知客户端 firebase 功能已完成

Stripe 付款后如何从 Webview 重定向到 React Native Expo 应用程序?

在 Paypal Express 结帐中添加多个项目

无法添加多个项目以快速结帐贝宝