2013-05-22 17 views
5

Ho un'app che ho sviluppato, che ha funzionato fino a quando alcune modifiche recenti.Perché il mio pulsante di pagamento non funziona all'improvviso?

Ho eseguito un aggiornamento del pacchetto e aggiornato un gruppo di gemme. Da allora (o intorno a quel momento) la mia procedura di checkout non funziona e non riesco a capire quale sia la causa del problema.

Non ho errori nel mio file development.log e nessun errore nella mia console JS.

È possibile controllare the site here.

Per le credenziali di accesso, utilizzare: [email protected]/testing123 (dove l'e-mail è utente e l'ultima è pw).

Aggiungi questo articolo al carrello, quindi passa attraverso il processo di checkout.

Immettere alcune credenziali false e utilizzare il numero di carta di credito: 4111111111111111 (il numero di verifica può essere qualsiasi numero a 3 cifre, scadenza qualsiasi data successiva a oggi).

Dopo aver fatto clic su checkout, il modulo non verrà inviato.

Per la vita di me, non riesco a capire perché.

Mi piacerebbe sentire alcune considerazioni su come potrei ulteriormente risolvere il problema o dirmi che cosa sta causando questo.

Grazie.

P.S. Questo non è un problema di Heroku - ho questo problema anche a livello locale. Sto usando la gemma del carrello degli acquisti di piggybak e i manutentori della gemma non sono stati in grado di replicare questo errore alla loro fine. Così sto ulteriormente sconcertato :(

risposta

1

ho seguito le istruzioni e ho ottenuto l'errore facendo clic su 'Create Order'.

sjsonp1369201390573({ 
     "error": { 
     "message": "The 'exp_year' parameter should be an integer (instead, is undefined).", 
     "type": "card_error", 
     "param": "exp_year", 
     "code": "invalid_expiry_year" 
    } 
} 
, 402) 

Questo non è venuta in console JS. Invece la vostra applicazione è la creazione aggiuntiva di script JS di file come:

https://api.stripe.com/v1/tokens?card[number]=undefined&card[cvc]=undefined&card[exp_month]=undefined&card[exp_year]=undefined&key=pk_u0E6vMzPGDJlYmyLqr83LCahMTL5e&callback=sjsonp1369201390573&_method=POST 

Anche se l'errore sembra essere straight-forward, dal momento che non ho usato AJAXQ o qualsiasi altro sistema a due vie JS, credo è necessario fare un passo attraverso il vostro programma per la cattura di questa eccezione

.

HTH.

+0

lo ha fatto creare la stringa URL esatto? Se è così, questo è un problema perché ho specificato l'URL della striscia 'v2' - contro' v1'. Questo potrebbe effettivamente essere il problema ... ora che ci penso. – marcamillion

+0

Sì, sta creando quella stringa URL esatta. Uno nuovo con la stessa stringa ogni volta che clicco sul pulsante Crea ordine. –

+0

Hrmm ... ok ... lasciami provare. – marcamillion

0

Sembra che la gemma piggybak_stripe è alla ricerca di dati della carta di credito utilizzando i selettori di classe che non si ha:

number: $('.card-number').val(), 
cvc: $('.card-cvc').val(), 
exp_month: $('.card-expiry-month').val(), 
exp_year: $('.card-expiry-year').val() 

così, dopo ho aggiunto classi appropriate agli ingressi (aggiungendo una classe card-number al piggybak_order[line_items_attributes][0][payment_attributes][number] input e così via), e usando "4242424242424242" come numero di tessera che il modulo invia. La validazione fallisce ancora su molte cose.

0

Il JSON risposta è:

"error": { 
    "message": "The 'exp_year' parameter should be an integer...", 
    "type": "card_error", 
    "param": "exp_year", 
    "code": "invalid_expiry_year" 
    } 

Follow up il messaggio di errore e aggiungere la classe appropriata agli elementi HTML a pagina.A titolo di esempio, in linea (codice HTML) 427 si ha:

<select id="piggybak_order_line_items_attributes_0_payment_attributes_year" name="piggybak_order[line_items_attributes][0][payment_attributes][year]"> 

Aggiungere il selettore di follow "exp_year":

<select class="exp_year" id="piggybak_order_line_items_attributes_0_payment_attributes_year" name="piggybak_order[line_items_attributes][0][payment_attributes][year]" > 

Gli elementi con selettori mancanti sono:

  • scheda [cvc]
  • scheda [exp_month]
  • scheda [exp _Anno]
  • carta di [numero]

Aggiungi queste 4 classi ed essere felici

Problemi correlati