代码之家  ›  专栏  ›  技术社区  ›  hretic

条纹结账:带有试用和额外付款的订阅(add_invoice_items)错误

  •  0
  • hretic  · 技术社区  · 2 年前

    我试图通过stripe销售订阅,订阅有座位用户可以订阅4个座位,基本上不需要付费,这将是下个月的试用期,但如果用户选择有额外的座位,他必须立即为额外的座位付费

    所以基本上我有一个30天试用期的订阅,其中可能包括现场额外付款

    我使用结账会话来设置订阅,因为我不想收集用户的银行信息

    至于额外费用,我找到了 add_invoice_items 我认为这将使我能够在试用和额外付款的情况下出售订阅

    问题是stripe在我尝试使用checkout会话创建它时不会接受这个参数

    关于这个项目的所有文档都使用了直接的方法,即通过收集用户信息创建订阅,并通过api创建订阅,而不是签出

    这是我的代码

    $session =   $client->checkout->sessions->create([
        'success_url' =>  config('front.public_url').'/payment?stat=ok' ,
        'cancel_url'  =>  config('front.public_url').'/payment?stat=cancel',
        'line_items'  => [
            [
                'price' => $price->id ,
                'quantity' => 1,
            ],
        ],
        'mode' => 'subscription',
        'subscription_data' => [
            'trial_period_days' => 30 ,
            'trial_settings' =>['end_behavior' => ['missing_payment_method' => 'pause']] ,
            'add_invoice_items' => ['price' => $price->id , 'quantity' => 1]
        ],
    ]);
    

    我收到这个错误:

    "message": "Received unknown parameter: subscription_data[add_invoice_items]",
    

    我不确定这是否可能,或者我误解了文档,应该为额外的费用创建一个单独的结账会话

    所以我不得不问,是否有可能在试用期内出售订阅,但在此基础上再加一笔额外费用,以便在一次结账时立即付款?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Lucky2501    2 年前

    认购的 add_invoice_items 数组用于向订阅添加一次性价格。这些可以在这种情况下使用,因为它们将在审判前被指控一次。
    使用Checkout,您可以在 line_items 大堆

    如果我理解正确的话,假设一个座位是100美元,你需要一次性100美元的价格( $price_one )和100美元的经常性价格( $price_sub ).

    'line_items'  => [
        [
            'price' => $price_sub->id ,
            'quantity' => 5,
        ],
        [
            'price' => $price_one->id ,
            'quantity' => 1,
        ]
    ]
    

    现在收费100美元,审判后经常收费500美元。

    推荐文章