使用Laravel Cashier订阅税时如何升级/交换订阅

时间:2015-12-09 02:25:15

标签: php laravel-4 laravel-5 laravel-cashier

Laravel Cashier使用订阅税创建订阅非常简单,但我发现在交换订阅时,它无法在该上下文中处理税收。

你遇到过这个问题吗?你是怎么解决它的?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,可能会有点晚,但应该帮助其他人。

因此,您需要覆盖User(或任何Billable)模型上的Laravel \ Cashier \ Billable :: invoice()方法以获取"tax_percent" => $this->taxPercentage()。换句话说,将以下代码添加到您的用户(或任何其他可计费)模型类中。

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;