Laravel收银员 - 将发票项目添加到订阅中

时间:2016-11-22 12:46:31

标签: php laravel-5 stripe-payments

我使用Laravel's Stripe integration每月向客户收费。

是否可以在我的订阅中添加发票项目,以便我的客户每月按照他/她在该期间内使用的多个项目收费?

This question suggests that it is possible

Laravel's文档涵盖creating an invoice但未添加发票项目。

是否有人知道添加发票项目是否有Laravel方法?如果没有,如何添加发票项目?

2 个答案:

答案 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')]
);