5

在开发与 Stripe Accounts 连接的应用程序时,我遇到了一个问题。如果给定电子邮件的帐户已存在,我无法创建新帐户。条纹会引发错误。

但是如何连接到该现有帐户?我找不到任何地方可以这样做。

为清楚起见,失败的代码是:

Stripe::Acount.create(managed: false, email: 'Foo@UserEmail.address')

我正在创建一个Stripe::Account对象,而不是一个Stripe::Customer对象。如果电子邮件已经存在于 Stripe 的 API 中,则上面的代码会引发异常,但没有为我提供任何与之连接的信息。

我担心的是,如果已经拥有 Stripe 帐户的用户尝试加入该网站,我该如何链接它们。

4

2 回答 2

2

由于您使用的是独立帐户,因此如果用户已经拥有使用该电子邮件地址的 Stripe 帐户,您将无法创建该帐户。

在这种情况下,您必须使用OAuth 流程将现有帐户连接到您的平台。

请注意,您可以使用 OAuth 流程来处理这两种情况。如果用户已经有一个 Stripe 账户,他们可以登录到他们现有的账户来连接它,如果他们没有,他们将能够创建一个新账户并同时连接它。

于 2016-03-25T18:33:16.523 回答
0

使用 Stripe Gem,如果帐户已经存在,我会使用类似的方法:

Stripe::Customer.retrieve(@user.stripe_id)

你可以这样做:

customer = if @user.stripe_id?
              Stripe::Customer.retrieve(@user.stripe_id)
            else
              Stripe::Customer.create(email: @user.email)
            end

我通常将 stripe_id 与关联的模型一起存储,但您可以使用 Stripe API 来检索它。

更新

我想念你的问题。如果您谈论的是不同的帐户(而不是客户)。您可以使用 Stripe API 检索所有帐户的列表,然后根据电子邮件选择您需要的帐户。

使用 Stripe API 列出所有帐户

然后用对应的邮箱找回账号:

Stripe::Account.retrieve("account_id")

答案的建议已转换为帐户:

accounts = Stripe::Account.all

account_i_need = accounts.select do |c|
  c.email == "foo@bar.com"
end
于 2016-03-25T18:00:42.453 回答