使用 Jetstream Teams 在 Laravel Spark / Cashier 项目上设置 paddle 电子邮件

问题描述 投票:0回答:1

我最近购买了 Laravel Spark 来处理订阅,并在团队支持下将其安装在我的 Jestream 项目上。

根据文档中的cookbook我应该将

paddleEmail
设置为团队所有者的电子邮件地址。

use Spark\Billable;

class Team extends JetstreamTeam
{
    use Billable;

    public function paddleEmail(): string|null
    {
        return $this->owner->email;
    }
}

这正是我所期望的,但我也希望我的用户能够拥有多个团队。在这种情况下,当用户创建第二个团队时,他们会收到错误,因为客户表已经具有与同一客户 paddle_id 相关的记录(但针对另一个计费模型)。

Spark / Cashier 是否有一种方法允许用户拥有多个团队,并可能支付多个订阅费用?

laravel laravel-cashier laravel-jetstream laravel-spark paddle
1个回答
0
投票

发生此问题的原因是

Paddle
要求每个客户拥有唯一的电子邮件地址,并且多个团队使用同一所有者的电子邮件会导致冲突。 修改您的
paddleEmail
方法以返回每个团队唯一的电子邮件:

public function paddleEmail(): string|null
{
    $emailParts = explode('@', $this->owner->email);
    $emailParts[0] .= '+team' . $this->id;
    return implode('@', $emailParts);
}

或者,您可以考虑使用电子邮件以外的唯一标识符,例如在

customer_reference
方法中设置唯一的
paddleOptions

© www.soinside.com 2019 - 2024. All rights reserved.