使用发票描述更新和发票条带订阅数量 laravel 收银员

Kol*_*zzy 13 php laravel stripe-payments laravel-cashier

再会,

我正在做一个涉及 laravel 收银员的项目。我想让用户能够更新他们的订阅数量并立即收费(我已经能够实现,使用下面的代码)

$user = Auth::user()
$user->subscription('main')->incrementAndInvoice(10000);
Run Code Online (Sandbox Code Playgroud)

与预期的一样,返回的发票不包含指示更改的描述,而是发票描述为空白。但是当我检查条纹上的事件数据时,有两个描述[见下图]

第一个描述,即用户当前/未使用的数量 在此处输入图片说明

上图显示了当前订阅数量为 5000 件但增加到 15000 件的订阅计划的用户。有没有办法在生成的发票中包含这些描述。

在我检查了incrementAndInvoice()方法之后,它只接受两个参数(1.count, 2.Plan),如下所示;

在此处输入图片说明

没有像我们对charge()方法那样包含描述的选项。有什么解决方法吗?任何正确方向的想法或指示将不胜感激。

提前感谢您的帮助。

Mah*_*mad 0

目前还没有实现将描述包含在 中incrementAndInvoice()。

因此,我们必须实施它,在此之前,请查看更新发票。

首先将此行更改$user->subscription('main')->incrementAndInvoice(10000);为$subscription = $user->subscription('main')->incrementAndInvoice(10000);(我们将其分配给$subscription变量)

然后获取发票如下:

$new_invoice = $user->invoices()->filter(function($invoice) use ($subscription) {
   return $invoice->subscription === $subscription->stripe_id;
});
Run Code Online (Sandbox Code Playgroud)

更新订阅数量后,我们将添加以下内容:

$client  = new \GuzzleHttp\Client();
$request = $client->post('https://api.stripe.com/v1/invoices/' . $invoice_id, [
    'auth' => [$secret_key, null]
    'json' => ['description' => 'your description']
]);

$response = json_decode($request->getBody());
Run Code Online (Sandbox Code Playgroud)

或者以下内容:

$stripe = new \Stripe\StripeClient(
  $secret_key
);
$stripe->invoices->update(
  $invoice_id,
  ['description' => 'your description']
);
Run Code Online (Sandbox Code Playgroud)

请注意:

  • 这$invoice_id是发票的 ID。
  • 这$secret_key是 API 密钥。