Laravel Cashier упрощает обмен планами:
$user->subscription('premium')
->swapAndInvoice();
Эта функция также отличная, потому что она сразу же выставляет счет пользователю, ОДНАКО, она также заставляет пользователя платить сразу, а не ждать часа, как обычно. Это, кажется, чтобы получить в пути моего invoice.created
webhook потому, что когда - то swapAndInvoice
происходит, я, кажется, не быть в состоянии внести дополнительные изменения в счет - фактуру.
Если я просто использую ->swap()
, он вообще не создает счет-фактуру, а просто создает позиции, ожидающие добавления в следующий счет-фактуру. Мысли приветствуются.
Начиная с публикации этого вопроса, я фактически отправил запрос на перенос в репозиторий Laravel StripeGateway.php
для добавления метода в файл StripeGateway.php
который может выполнять такие функции.
/**
* Invoice the billable entity outside of regular billing cycle without charging the user immediately.
*
* @return bool
*/
public function invoiceWithoutImmediateCharge()
{
try
{
$customer = $this->getStripeCustomer();
// Removed this because it immediately charges the user which doesn't allow the invoice to be modified by webhooks
//Stripe_Invoice::create(['customer' => $customer->id], $this->getStripeKey())->pay();
Stripe_Invoice::create(['customer' => $customer->id], $this->getStripeKey());
return true;
}
catch (\Stripe_InvalidRequestError $e)
{
return false;
}
}