2015-03-09 20 views
9

Sto cercando di implementare l'interfaccia utente di Braintree Drop-in e voglio inviare il modulo utilizzando un metodo jQuery ajax personalizzato. In precedenza, ero solito inviare il modulo (non drop-in UI) usando il metodo jQuery serialize(), ma per il nuovo (caricato dinamicamente) UI Dropin il metodo serialize() non sembra funzionare (il metodo_metodo_di pagamento il valore è impostato su vuoto). Tuttavia, l'invio del modulo tramite un modulo html di base (senza ajax) sembra funzionare correttamente, quindi il mio payment_method_nonce è lì, è solo perdersi lungo la strada.Interfaccia utente di Braintree Drop - in - invia modulo utilizzando AJAX

Come posso essere sicuro che il metodo serialize() non perda il valore payment_method_nonce?

O come una domanda più generale, come posso inviare il modulo UI Drop-in usando ajax?

So che esiste un flag PaymentMethodNonceReceived da utilizzare quando si esegue il braintree.setup, ma ciò non funziona nel mio caso in quanto è necessario mantenere il codice per l'invio della richiesta/gestione della risposta separata da braintree.setup.

Acclamazioni

risposta

13

A quanto pare il metodo paymentMethodNonceReceived era il modo di andare alla fine. Una volta creato il token, lo utilizzo per creare un campo nascosto che fa parte del modulo, che può quindi essere serializzato utilizzando il metodo serialize() senza alcun problema. Ecco un esempio di codice:

<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

Lavoro a Braintree nel team SDK. Questo è il metodo che avrei suggerito. Sono contento che ha funzionato. – kdetella

+0

@kdetella, grazie per la risposta. Come aggiungerei il valore device_data per l'integrazione di Kount nello stesso modo (ad esempio per una richiesta Ajax)? – Blizwire

+0

NVM, ha funzionato immediatamente fuori dalla scatola come risulta =) – Blizwire