我试图通过 stripe 出售订阅,订阅有席位用户可以订阅 4 个席位而无需付费,基本上这将是一个试用期,直到下个月,但如果用户选择拥有额外的席位,他必须立即为额外的席位付费
所以基本上我订阅了 30 天的试用期,其中可能包括当场额外付款
我使用结账会话来设置订阅,因为我不想收集用户银行信息
至于额外费用,我找到了
add_invoice_items
项目,我认为它可以让我通过试用和额外付款来出售订阅
问题是当我尝试使用结帐会话创建它时,stripe 不会接受此参数
该项目的所有文档均采用直接创建订阅的方式,通过收集用户信息并通过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]",
我不确定这是否可能,或者我可能误解了文档,应该创建一个单独的结账会话以支付额外费用
所以我不得不问是否有可能通过试用来销售订阅,但在此基础上添加额外费用以便通过一次结账会话立即付款?
订阅的
add_invoice_items
数组用于向订阅添加一次性价格。line_items
数组中添加定期价格和一次性价格。
如果我理解正确的话,假设一个座位为 100 美元,您需要 100 美元的一次性价格 (
$price_one
) 和 100 美元的经常性价格 ($price_sub
)。
'line_items' => [
[
'price' => $price_sub->id ,
'quantity' => 5,
],
[
'price' => $price_one->id ,
'quantity' => 1,
]
]