Обновление и выставление счета Stripe Subscription Quantity с описанием счета laravel кассир - PullRequest
9 голосов
/ 14 июля 2020

Добрый день,

Я работаю над проектом с участием laravel кассира. Я хочу дать пользователю возможность обновлять количество подписок и сразу получать оплату (чего я смог добиться, используя приведенный ниже код)

$user = Auth::user()
$user->subscription('main')->incrementAndInvoice(10000);

Насколько вышесказанное работает, как ожидалось, счет-фактура возвращенный не включает описание, указывающее на изменения, вместо этого описание счета-фактуры пустое. Но когда я проверил данные о событии на полосе, есть два описания [см. Изображение ниже]

First Description which is the user's current/unused quantity enter image description here

The above images shows a user who was currently on a subscription plan with 5000 quantities but increased to 15000 quantities. Is there a way to include these descriptions in the invoice generated.

After i checked the incrementAndInvoice() method , it only accepts two parameter (1. count, 2. Plan) as seen below;

введите описание изображения здесь

нет возможности включать описание, как у метода charge(). Есть ли способ обойти это? Мы будем очень благодарны за любые идеи или указатели в правильном направлении.

Заранее спасибо за вашу помощь.

1 Ответ

0 голосов
/ 22 июля 2020

В настоящее время не существует реализации для включения описания в 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;
});

После обновления количества подписки мы добавим следующее:

$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());

Или следующее:

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

Обратите внимание, что:

  • $invoice_id - это идентификатор счета.
  • $secret_key - это ключ API.
...