我使用Laravel's
Stripe integration
每月向客户收费。
是否可以在我的订阅中添加发票项目,以便我的客户每月按照他/她在该期间内使用的多个项目收费?
This question suggests that it is possible
Laravel's
文档涵盖creating an invoice但未添加发票项目。
是否有人知道添加发票项目是否有Laravel
方法?如果没有,如何添加发票项目?
答案 0 :(得分:2)
我知道这是一个老问题,但是由于我在任何地方都找不到答案,因此我将分享我发现的内容:
使用收银台创建新订阅时,您可以为订阅传递其他选项。 感兴趣的参数是“ add_invoice_items”,它使您可以将一次性付款附加到订阅的第一张发票上。
$user->newSubscription('default', 'basic')
->create($paymentMethod, [
'name' => 'customer name',
// other customer data
],[
'add_invoice_items' => [
[
'price' => 'your_stripe_price_id',
'quantity' => 1
]
],
// Any other subscription ot
]);
查看订阅选项https://stripe.com/docs/api/subscriptions/create 查看custoemr选项https://stripe.com/docs/api/customers/create
答案 1 :(得分:0)
我认为使用Laravel 5.4会更容易,但由于在撰写本文时尚未完成,因此您必须手动设置它。
使用Laravel 5.4(假设此功能使其进入)
$user->invoiceForUpcoming('One-time charge', 1000);
手动方式(确保安装了收银台等):
use Stripe\InvoiceItem as StripeInvoiceItem;
在您的控制器中或任何有意义的地方:
$options = [
'customer' => $user->stripe_id,
'amount' => 1000,
'currency' => 'usd',
'description' => 'One-time fee',
];
$response = StripeInvoiceItem::create(
$options, ['api_key' => config('services.stripe.secret')]
);