【问题标题】:Stripe Invoices - Custom Prices条纹发票 - 自定义价格
【发布时间】:2021-12-12 02:45:01
【问题描述】:

我有一个问题想问熟悉 Stripe Payments API 的人。

我要做什么

我正在尝试创建具有自定义动态价格的发票。这个价格可能因客户而异,相差几美分,因此单一产品有数百个价格是不可行的。

发票/结帐会话的问题

通常,当客户激活订阅或为产品付款时,他们会使用发票进行操作。发票是通过我们后端的结帐会话创建的,如下所示:

    session = stripe.checkout.Session.create(
        mode='payment',
        customer=customer_id,
        payment_method_types=['card'],
        line_items=[{
            'price': MY_PRICE_ID,
            'quantity': 5,
        }],
    )

结帐会话允许使用价格 ID,但不允许自定义价格! (或者是吗?)

支付意图的问题

支付意图让您可以在客户端创建具有动态价格的结帐会话,例如:

const paymentIntent = await stripe.paymentIntents.create({
        amount,
        currency: "usd"
});

但是,这会在Customer 中产生与任何产品无关的费用。我想将此付款与产品相关联。

【问题讨论】:

    标签: stripe-payments


    【解决方案1】:

    我从 Checkout Session Api 文档中找到了这个。它说,在line_items 中,您可以通过priceprice_dataamount。如果提供了amount,则currencyname 是必需的。

    所以,下面的代码应该适合你,

    session = stripe.checkout.Session.create(
        mode='payment',
        customer=customer_id,
        payment_method_types=['card'],
        line_items=[{
            'amount': MY_AMOUNT,
            'currency': 'USD',
            'name': MY_ITEM,
            'quantity': 5,
            ...
        }],
    )
    

    如果您想将付款与产品相关联,那么使用price_data 以下代码应该适合您,

    session = stripe.checkout.Session.create(
        mode='payment',
        customer=customer_id,
        payment_method_types=['card'],
        line_items=[{
            'price_data':{
                'currency': 'USD',
                'product': MY_PRODUCT_ID,
                'unit_amount': MY_AMOUNT,
                ...
             }
        }],
    )
    

    【讨论】:

      猜你喜欢
      • 2018-03-31
      • 2020-12-09
      • 2021-01-08
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2017-07-03
      相关资源
      最近更新 更多