我正在使用Stripe managed accounts,我可以毫无问题地创建和检索帐户,但我无法将信用卡添加到任何条带帐户。我正在使用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.
因此我假设我需要在卡片表单中添加currency
字段,所以我再次尝试然后我遇到了这个错误:
This card doesn't appear to be a debit card. (when submitting currency from views)
我已经尝试搜索错误,但不知何故没有真正的引用或以前的答案。
有谁知道如何解决这个问题?
提前致谢!
详情
由于我在本地机器上测试,我使用的是Stripe的测试卡号:
4242424242424242
接受任何expiration date
和CVC
以下是一些代码:
这是我创建自选帐户的方式:
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
答案 0 :(得分:16)
条纹accounts是付款目的地 - 他们可以获得资金,但不提供资金。
(Customers是付款来源,即他们提供资金。)
目前,Stripe帐户可以使用两种不同类型的外部帐户作为付款方式(即检索其资金):
因此,您可以将借记卡作为外部帐户添加到美国自定义帐户,但不能用信用卡,因为这些不能用于接收资金。
要使用借记卡作为付款方式,必须使用currency
参数使用token创建卡Stripe.js。由于目前仅适用于美国帐户,因此currency
参数的值必须为"usd"
。以下是使用currency
参数的Stripe.js表单的简单示例:https://jsfiddle.net/ywain/rprufyg5/
在测试模式下,您需要使用一个借记testing card numbers,例如4000 0566 5566 5556
或5200 8282 8282 8210
。
答案 1 :(得分:2)
我有同样的问题。我联系了他们,我找到了一些解决方案。 我正在使用iOS Stripe SDK生成令牌。 它对我有用。
此时Stripe仅支持基于美国的美元借记卡用于卡外部帐户。将货币参数添加到令牌的方法是添加对
的直接调用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];