我在Stripe有一个现有客户,我们计划为客户添加订阅。首先,我想添加一个发票项目,以便订阅在创建时选择它并将其添加到待处理发票中。以下代码按顺序运行,但条带中的发票项目立即显示为已付款,而不是添加到订阅的待处理发票中。文档说我的说法是正确的,我知道为什么发票项目没有添加到待处理的发票中?
try {
\Stripe\InvoiceItem::create(
array(
"customer" => $customer['stripe_customer_id'],
"amount" => $invoice_item_amount,
"currency" => "usd",
"description" => $product['description']
)
);
} catch(Error $e) {
// do something
}
try {
$result = $stripe_customerObj->subscriptions->create(
array(
"coupon" => $coupon,
"plan" => $plan_id,
"quantity" => $quantity,
"trial_end" => $trial_end_timestamp,
"metadata" => $metadata
)
);
} catch(Error $e) {
// do something
}
在创建订阅后我将InvoiceItem::create
移动到了它。
答案 0 :(得分:1)
这是预期的行为。您拥有的代码会创建一个发票项目,然后创建一个包含试用版的订阅。该试用版会创建一个$ 0发票,该发票会自动选择待处理的发票项目(包括您刚刚创建的发票项目)。如果您想在试用期内收取费用,这就是您要使用的流程。
如果您希望将待处理发票项目添加到下一个发票中,则可以在订阅后创建它。