【问题标题】:trial period in Checkout session in StripeStripe Checkout 会话中的试用期
【发布时间】:2021-02-20 05:44:48
【问题描述】:

我想创建用于条带结帐会话的试用期:

session = stripe.checkout.Session.create(
            customer=customer.stripe_id,
            payment_method_types=['card'],
            line_items=[{
                'price': "price_1HjynjHdAhQwSUAK",
                'quantity': 1,
                'tax_rates': ["txr_1Hkntg4yXtzmX", ],

            },
            mode='payment',
            allow_promotion_codes=True,
            success_url=request.build_absolute_uri(reverse('thanks')) + '?session_id=CHECKOUT_SESSION_ID}',
            cancel_url=request.build_absolute_uri(reverse('index_payment')),
        )

tripe.Subscription.create 中看起来我们只需要添加 trial_end=1605387163,但它在结帐会话中不起作用。尽管我很确定它是可行的,但我似乎找不到这样做的方法,如demo 所示:

如果有人可以提供帮助,我将不胜感激。

【问题讨论】:

    标签: stripe-payments


    【解决方案1】:

    trial_end 的想法是正确的,它只需要成为 subscription_data 下的子参数即可。

    // other parameters
    subscription_data: {
        trial_end=1605387163
    }
    

    https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-subscription_data-trial_end

    【讨论】:

    • 感谢它有效。但是看起来发票中的所有产品都是相同的试用版。换句话说,如果有 3 个产品需要支付,并且每个产品都有不同的试用天数,我们不能为它们分配 3 个不同的试用天数。是这样吗?
    【解决方案2】:

    Brendan 的回答为我指明了正确的方向,对于 PHP,添加 trial_end 的语法例如是:

    $session = \Stripe\Checkout\Session::create([
          .......
          Your Other parameters
          .......
          'subscription_data' => ['trial_end' => 1624110173],
            
        ]);
    

    其中 1624110173 是免费期结束的 unix 时间戳。有关结帐流程和代码的一般说明,请参阅此 Stripe 文档:

    Stripe Documents

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 2021-07-20
      • 2022-12-28
      • 2019-12-02
      • 2020-10-05
      • 2021-12-21
      • 2021-09-18
      • 2021-02-10
      • 2018-02-08
      相关资源
      最近更新 更多