Sto usando gemma rubino di banda per (cercare di) compiere due passi:errore Stripe: "L'oggetto della carta deve avere un valore per 'numero'" quando si crea un cliente
- Raccogliere una carta usando Stripe del " Checkout" forma
- creare un cliente utilizzando il token fornito dal reindirizzamento dalla presentazione sotto forma
il secondo di questi passaggi solleva una Stripe::CardError
il cui messaggio è:
The card object must have a value for 'number'
la documentazione delle API descrive il processo: https://stripe.com/docs/tutorials/subscriptions#subscribing-a-customer-to-a-plan
Il mio codice (un controller azione Rails)
def receive_redirect
customer = Stripe::Customer.create(
plan: "stripe_plan_name",
card: params[:stripeToken]
)
end
params [: stripeToken] è simile al seguente:
{"id"=>"tok_1044TY4GgNdNSosPXdAmIZdt", "livemode"=>"false", "created"=>"1400620581", "used"=>"false", "object"=>"token", "type"=>"card", "card"=>{"id"=>"card_1044TY4GgNdNSosPuDSuygow", "object"=>"card", "last4"=>"9424", "type"=>"Discover", "exp_month"=>"9", "exp_year"=>"2014", "fingerprint"=>"Lz5ASwlmyseG0gYo", "customer"=>"", "country"=>"US", "name"=>"[email protected]", "address_line1"=>"", "address_line2"=>"", "address_city"=>"", "address_state"=>"", "address_zip"=>"", "address_country"=>""}, "email"=>"<my_email>@<my_host>"}
... Come puoi vedere, non mi danno un numero, quindi cosa devo fare?
Pila
striscia 1.8.8 (gemma rubino)
Rails 3.2.13
Rubino 1.9.3
Immagino che tu abbia ragione. Ogni esempio di codice nel documento di riferimento sembra essere sbagliato in questo senso. – JellicleCat
Verifica due volte il codice di acquisto, utilizzando il codice di esempio di Stripe, 'stripeToken' sicuramente dovrebbe essere una semplice stringa contenente un ID token. Sembra che il token sia stato consultato tramite l'API per qualche ragione. – colinm
@colinm Sfortunatamente gli esempi di Stipe sono piuttosto negativi. Ad esempio in questo caso il loro esempio mostra: 'customer.source = stripe_token' Ciò che dovrebbe dire è:' customer.source = stripe_token [: id] 'Non c'è indicazione che voglia l'id non l'intero token. Il messaggio di errore quando si assegna l'intero token è ancora peggio: "deve specificare il tipo di oggetto" Questo ti porta in una buca del coniglio cercando di assegnargli l'oggetto della carta. –