2015-03-09 62 views
9

Próbuję zaimplementować interfejs użytkownika Drop-in Braintree i chcę wysłać formularz przy użyciu niestandardowej metody jQuery ajax. Poprzednio wysyłałem (niezawierający interfejsu użytkownika) formularz za pomocą metody jQuery serialize(), ale dla nowego (załadowanego dynamicznie) interfejsu Dropin UI metoda serialize() nie działa (payment_method_nonce wartość jest pusta). Jednak wysyłanie formularza za pomocą podstawowego formularza HTML (bez ajax) wydaje się działać dobrze, więc mój payment_method_nonce jest tam, jego po prostu gubi się po drodze.Braintree Drop-in UI - wyślij formularz za pomocą AJAX

Jak mogę się upewnić, że metoda serialize() nie utraci wartości payment_method_nonce?

Jako bardziej ogólne pytanie, w jaki sposób mogę wysłać formularz UI za pomocą ajax?

Wiem, że istnieje flaga paymentMethodNonceReceived, która ma być używana podczas wykonywania Braintree.setup, ale to nie działa w moim przypadku, ponieważ muszę zachować kod do wysłania żądania/obsługi odpowiedzi oddzielonej od braintree.setup.

Cheers

Odpowiedz

13

Widocznie metoda paymentMethodNonceReceived było do zrobienia w końcu. Po utworzeniu tokena używam go do utworzenia ukrytego pola, które jest częścią formularza, które można następnie serializować przy użyciu metody serialize() bez żadnego problemu. Oto przykład kodu:

<script type="text/javascript"> 
    braintree.setup("PaymentTokenGoesHere", "dropin", { 
     container: "myDiv", 
     paymentMethodNonceReceived: function (event, nonce) { 
      $('#myForm').append("<input type='hidden' name='payment_method_nonce' value='" + nonce + "'></input>"); 
      CallAjaxMethod(); 
     } 
    }); 
</script> 
+6

Pracuję w Braintree w zespole SDK. To jest metoda, którą bym zasugerował. Cieszę się, że to się udało. – kdetella

+0

@kdetella, dzięki za odpowiedź. Jak dodać wartość device_data do integracji Kount w ten sam sposób (np. W przypadku żądania ajax)? – Blizwire

+0

NVM, działało od razu po wyjęciu z pudełka, jak się okazało =) – Blizwire