2013-05-22 13 views
5

Mam aplikację, którą opracowywałem, która działała aż do ostatnich zmian.Dlaczego mój przycisk kasowania nie działa nagle?

Uruchomiłem aktualizację pakietu i zaktualizowałem kilka klejnotów. Od tego czasu (lub w tym czasie) mój proces kasowania nie działa i nie mogę się dowiedzieć, co jest przyczyną problemu.

Nie mam żadnych błędów w moim pliku development.log i żadnych błędów w mojej konsoli JS.

Możesz sprawdzić the site here.

Aby uzyskać dane logowania, należy użyć: [email protected]/testing123 (gdzie adres e-mail to użytkownik, a drugi to pw).

Dodaj ten produkt do koszyka, a następnie przeprowadź proces finalizacji transakcji.

Wprowadź fałszywe dane uwierzytelniające i użyj numeru karty kredytowej: 4111111111111111 (numer weryfikacyjny może być dowolnym trzycyfrowym numerem, który kończy się dowolną datą po dniu dzisiejszym).

Po kliknięciu kasy zobaczysz, że formularz nie został przesłany.

Za życie mnie nie mogę zrozumieć dlaczego.

Chciałbym usłyszeć niektóre przemyślenia na temat tego, w jaki sposób mogę je dalej rozwiązać lub powiedzieć, co jest przyczyną tego problemu.

Dzięki.

P.S. To nie jest problem z Heroku - mam ten problem również lokalnie. Używam klejnotu zakupów piggybak, a opiekunowie klejnotów nie byli w stanie powtórzyć tego błędu po ich zakończeniu. Więc ja dalej flummoxed :(

Odpowiedz

1

I po instrukcji i mam błąd na kliknięcie „Utwórz zamówienie”.

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) 

To nie przychodzi w konsoli JS. Zamiast tego aplikacja jest stworzenie dodatkowego skryptu JS złożyć jak:

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 

choć błąd wydaje się być prosta, ponieważ nie zostały wykorzystane AJAXQ lub dowolny inny system barana JS, myślę, że trzeba przejść przez swojego programu do połowu tego wyjątku

.

HTH.

+0

Czy to stworzyć dokładnie to ciąg URL? Jeśli tak, to jest problem, ponieważ podałem adres URL 'v2' Stripe - versus' v1'. To może być problem ... teraz, kiedy o tym myślę. – marcamillion

+0

Tak, tworzy dokładny ciąg URL. Nowy z tym samym ciągiem za każdym razem, gdy klikam przycisk Utwórz zamówienie. –

+0

Hrmm ... ok ... lemme spróbuj czegoś. – marcamillion

0

Wydaje się gem piggybak_stripe szuka karty kredytowej za pomocą selektorów klas, które nie posiadają:

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

tak, to po dodaniu odpowiednich klas do wejść (Dodanie do klasy card-numberpiggybak_order[line_items_attributes][0][payment_attributes][number] dane wejściowe i tym podobne), a jako numer karty przesłany formularz "4242424242424242". Sprawdzanie poprawności wciąż kończy się niepowodzeniem w przypadku wielu problemów.

0

JSON odpowiedź brzmi:

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

Kontynuacja komunikat o błędzie i dodać odpowiednią klasę html elementów na stronie.Jako przykład, w linii 427 (kod HTML), musisz:

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

Dodaj selektora Śledź "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]" > 

Elementy z brakującymi selektorów to:

  • karta [cvc]
  • karta [exp_month]
  • karta [exp _year]
  • karta [numer]

Dodaj te 4 klasy i być szczęśliwym

Powiązane problemy