无法将信用卡添加到 Stripe 上的托管帐户

Posted

技术标签:

【中文标题】无法将信用卡添加到 Stripe 上的托管帐户【英文标题】:Unable to add credit card to a managed account on Stripe 【发布时间】:2016-06-04 19:12:37 【问题描述】:

我正在使用Stripe managed accounts,我可以毫无问题地创建和检索帐户,但我无法将信用卡添加到任何 Stripe 帐户。我使用Stripe.js 处理卡片创建过程,所以在视图中我收集卡片字段并让 Stripe.js 完成验证和处理的繁琐工作。如果一切正常,我会收到来自 Stripe 的 stripeToken,它在我的控制器中用于最终关联托管帐户和信用卡。

但是我收到此错误:

Error creating card: (Status 400) You must provide a card that has the 'currency' field set when adding a card to a Stripe account.

因此我假设我需要在 Card 表单中添加 currency 字段,所以我再次尝试,然后出现此错误:

This card doesn't appear to be a debit card. (when submitting currency from views)

我已经尝试搜索错误,但不知何故没有真正的参考或以前的答案。

有谁知道我该如何解决这个问题?

提前致谢!


详情

由于我在本地机器上进行测试,所以我使用的是 Stripe 的测试卡号: 4242424242424242 接受任何 expiration dateCVC

这是一些代码:

这就是我创建管理帐户的方式:

def create_account(email)
  Stripe::Account.create(
    
      :country => "US",
      :managed => true,
      :email => email,
      :default_currency => "USD"
    
  )
end

这就是我将卡令牌添加到帐户的方式(基于API docs):

def add_card_to_account(account_id, card_token)
  account = get_account(account_id)
  account.external_accounts.create(:external_account => card_token)
end

【问题讨论】:

您好,我遇到了同样的问题。你找到解决方案了吗?谢谢 【参考方案1】:

Stripe accounts 是付款目的地 -- 他们可以接收资金,但不能提供资金。

(Customers 是付款来源,即他们提供资金。)

目前,Stripe 账户可以使用两种不同类型的外部账户作为支付方式(即取回他们的资金):

银行账户 借记卡(仅限美国)

因此,您可以将借记卡作为外部账户添加到美国自定义账户,但不能添加信用卡,因为信用卡不能用于接收资金。

为了使用借记卡作为支付方式,卡token 必须已使用Stripe.js 使用currency 参数创建。由于目前这仅适用于美国帐户,因此currency 参数的值必须为"usd"。这是一个使用 currency 参数的 Stripe.js 表单的简单示例:https://jsfiddle.net/ywain/rprufyg5/

在测试模式下,您需要使用借记卡testing card numbers 之一,例如4000 0566 5566 55565200 8282 8282 8210

【讨论】:

谢谢你,你可能为我节省了很多时间。 使用 Stripe Elements 时,将货币参数添加到 create token 调用中。 stripe.createToken(card, currency: 'usd' );【参考方案2】:

我也有同样的问题。我已经联系了他们,我为我找到了一些解决方案。 我正在使用 ios Stripe SDK 生成令牌。 它对我有用。

目前,Stripe 仅支持用于卡 external_accounts 的美国美元借记卡。您可以将货币参数添加到您的代币的方法是添加对

的直接调用
self.paymentTextField.cardParams.currency = @"usd"; 

在 PaymentViewController 中初始化 STPPaymentCardTextField 之后,如下所示:

// Setup payment view
STPPaymentCardTextField *paymentTextField = [[STPPaymentCardTextField alloc] init];
paymentTextField.delegate = self;
paymentTextField.cursorColor = [UIColor purpleColor];
self.paymentTextField = paymentTextField;
self.paymentTextField.cardParams.currency = @"usd";
[self.view addSubview:paymentTextField];

【讨论】:

以上是关于无法将信用卡添加到 Stripe 上的托管帐户的主要内容,如果未能解决你的问题,请参考以下文章

将信用卡添加到用户帐户时验证卡所有者的最佳做法

Omnipay-Stripe 将信用卡详细信息从表单存储到数据库

如何使用 Paypal 或 Stripe 自动为帐户充值

将资金从商家帐户转移到信用卡/借记卡持有人银行,可能使用 ACH

如何使用 Stripe (stripe.js) 和 react-native

在 PHP 中添加付款方式和托管到网站