Laravel Cashier позволяет довольно просто создавать подписки с подписными налогами, но я обнаружил, что когда дело доходит до обмена подписками, он не может иметь дело с налогами в этом контексте.
Вы столкнулись с этой проблемой? Как ты решил это?
Я нашел решение, может быть, немного поздно, но это должно помочь другим.
Поэтому вам нужно переопределить метод Laravel \ Cashier \ Billable :: invoice () в вашей пользовательской (или любой оплачиваемой) модели, чтобы принять "tax_percent" => $this->taxPercentage()
, Другими словами, добавьте следующий фрагмент кода в свой класс модели User (или любого другого оплачиваемого).
public function invoice()
{
if ($this->stripe_id) {
try {
return StripeInvoice::create(['customer' => $this->stripe_id, "tax_percent" => $this->taxPercentage()], $this->getStripeKey())->pay();
} catch (StripeErrorInvalidRequest $e) {
return false;
}
}
return true;
}
Также не забудьте добавить эти новые требования к вашему классу
use Stripe\Invoice as StripeInvoice;
use Stripe\Error\InvalidRequest as StripeErrorInvalidRequest;
Других решений пока нет …