2016-02-23 20 views
8

Pracuję z Stripe managed accounts, mogę tworzyć i pobierać konta bez problemu, ale nie mogę dodawać kart kredytowych do żadnego konta Stripe. Używam Stripe.js do obsługi procesu tworzenia karty, więc w widokach zbieram pola kart i pozwalam, aby Stripe.js wykonywał brudną pracę sprawdzania i przetwarzania. Jeśli wszystko jest w porządku, otrzymuję od użytkownika Stripe, który jest używany w moim kontrolerze, stripeToken do kojarzenia zarządzanego konta i karty kredytowej.Nie można dodać karty kredytowej do zarządzanego konta na pasku

jednak otrzymuję ten błąd:

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

Dlatego zakłada się, że muszę dodać pole currency w postaci kart, więc spróbowałem jeszcze raz i wtedy miałem ten błąd:

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

Próbowałem już wyszukać błąd, ale jakoś nie ma prawdziwych odniesień ani poprzednich odpowiedzi.

Czy ktoś wie, w jaki sposób mogę rozwiązać ten problem?

Z góry dziękuję!


Szczegóły

Odkąd jestem testowania na moim komputerze lokalnym używam paskiem Numer Test kart: 4242424242424242 który akceptuje każdy expiration date i CVC

Oto kod :

Oto jak mogę utworzyć zarządzane konto:

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

ten sposób mogę dodać token kart do rachunków (na podstawie 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

Witam Mam ten sam problem . Znalazłeś rozwiązanie? Dzięki – John

Odpowiedz

12

Stripe accounts są płatności docelowych - mogą otrzymać fundusze, ale nie zapewniają im .

(Customers są płatności źródła, czyli dostarczają funduszy.)

Obecnie rachunki Stripe mogą korzystać z dwóch różnych rodzajów rachunków zewnętrznych jak metody wypłat (czyli odzyskać swoje pieniądze):

  • konta bankowe
  • kart debetowych (tylko w USA)

Tak możesz dodać kartę debetową jako konto zewnętrzne do amerykańskiego konta niestandardowego, ale nie kartę kredytową, ponieważ nie można ich wykorzystać do otrzymania środków.

Aby użyć karty debetowej jako metody zapłaty, karta token musi zostać utworzona za pomocą Stripe.js, przy użyciu parametru currency. Ponieważ jest to obecnie możliwe tylko dla kont w USA, wartość parametru currency musi wynosić "usd". Oto prosty przykład formularza Stripe.js, który używa parametru currency: https://jsfiddle.net/ywain/rprufyg5/

W trybie testowym konieczne jest użycie jednego z poleceń zapłaty: testing card numbers, np. 4000 0566 5566 5556 lub 5200 8282 8282 8210.

+0

Dziękuję za to, prawdopodobnie zaoszczędziłeś mi dużo czasu. – cjones3724

1

Mam ten sam problem. Skontaktowałem się z nimi i znalazłem dla mnie rozwiązanie. Generuję token za pomocą iOS Stripe SDK. To działało dla mnie.

W tej chwili Stripe obsługuje tylko amerykańskie karty debetowe USD dla kart external_accounts. Sposób, w jaki można dodać parametr waluty do tokena jest dodanie bezpośredniego połączenia do

self.paymentTextField.cardParams.currency = @"usd"; 

po uruchomieniu STPPaymentCardTextField w PaymentViewController, takie jak:

// 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];