2016-02-23 12 views
8

Sto lavorando con Stripe managed accounts, Posso creare e recuperare account senza problemi, ma non posso aggiungere carte di credito a nessun account Stripe. Sto usando Stripe.js per gestire il processo di creazione della carta, quindi nelle viste raccolgo i campi della carta e faccio fare a Stripe.js il lavoro sporco di validazione ed elaborazione. Se tutto è ok, ricevo uno stripeToken da Stripe che viene utilizzato nel mio controller per associare infine l'account gestito e la carta di credito.Impossibile aggiungere la carta di credito a un account gestito su Stripe

Tuttavia ricevo questo errore:

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

Perciò ho pensato che mi serviva per aggiungere il campo currency in forma carta, così ho provato di nuovo e poi ho avuto questo errore:

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

Ho già provato a cercare l'errore, ma in qualche modo non ci sono riferimenti reali o risposte precedenti.

Qualcuno sa come posso risolvere questo problema?

Grazie in anticipo!


dettagli

Dal momento che sto testando sulla mia macchina locale, sto usando il numero della carta di prova di banda: 4242424242424242 che accetta qualsiasi expiration date e CVC

Ecco il codice :

Ecco come creo il mio account gestito:

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

Questo è come aggiungo il token card per i conti (in base alla 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

Ciao Sto avendo lo stesso problema . Hai trovato una soluzione? Grazie – John

risposta

12

banda accounts sono pagamento destinazioni - possono ricevere i fondi, ma non fornire loro .

(Customers sono pagamenti fonti, vale a dire che forniscono i fondi.)

Attualmente, conti banda può usare due diversi tipi di account esterni come metodi di pagamento (ad esempio per recuperare i loro fondi):

    conti
  • banca
  • carte di debito (solo negli Stati Uniti)

Così puoi aggiungere una carta di debito come account esterno a un account personalizzato statunitense, ma non una carta di credito in quanto non è possibile utilizzarla per ricevere fondi.

Per utilizzare una carta di debito come metodo di pagamento, la carta token deve essere stata creata con Stripe.js, utilizzando il parametro currency. Poiché questo è possibile solo per gli account degli Stati Uniti al momento, il valore per il parametro currency deve essere "usd". Ecco un semplice esempio di un modulo Stripe.js che utilizza il parametro currency: https://jsfiddle.net/ywain/rprufyg5/

In modalità test, è necessario utilizzare uno degli addebiti testing card numbers, ad es. 4000 0566 5566 5556 o 5200 8282 8282 8210.

+0

Grazie per questo, probabilmente mi hai risparmiato un sacco di tempo. – cjones3724

1

Ho lo stesso problema. Li ho contattati ho trovato qualche soluzione per me. Sto generando token utilizzando l'SDK per iOS. Ha funzionato per me.

In questo momento, Stripe supporta solo carte di debito USD basate negli Stati Uniti per le carte esterne_account. Il modo in cui è possibile aggiungere il parametro di valuta per il token è con l'aggiunta di una chiamata diretta al

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

dopo l'inizializzazione del STPPaymentCardTextField nel vostro PaymentViewController, come ad esempio:

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