2015-01-21 11 views
8

Ho impostato l'interfaccia utente di rilascio per braintree. Posso vedere bene l'interfaccia utente. Prima ho creato il cliente e posso vedere il cliente su Braintree-Sandbox. Ora voglio aggiungere il metodo di pagamento al cliente. Sto provando il seguente codice, ma paymentMethodNonceReceived non viene invocato. Non so perché.Braintree - paymentMethodNonceReceived non invocato

braintree.setup("<?=CLIENT_TOKEN_FROM_PHP?>", 
    "dropin", 
    { 
     container: "divBrainTreeContainer", 
     paymentMethodNonceReceived: function (event, nonce) { 
     console.log(nonce); 
     $('#formProfile').append('<input type="hidden" name="payment_method_nonce" value="'+nonce+'" />'); 
     $('#formProfile').submit(); 
     } 
    } 
); 
+4

Lavoro a Braintree nel team SDK. Avete l'elemento 'divBraintTreeContainer' all'interno di un elemento' form'? In tal caso, quel 'form' contiene un pulsante di invio? – kdetella

+0

Ok @kdetella grazie, non c'era il pulsante di invio, stavo inviando tramite javascript, ma quando ho aggiunto il pulsante di invio, ho ricevuto il pagamento_method_nonce. –

+2

@kdetella Questo fatto relativo al pulsante di invio non è indicato da nessuna parte sulla pagina dell'interfaccia utente di rilascio o sulla pagina di Hello, Client. Sarebbe bello aggiungere questo da qualche parte, come sono stato perplesso da questo anche! Non impedisce che un nonce scenda su un'interfaccia utente personalizzata. – janson0

risposta

5

Come da @ di kdetella commento, ci dovrebbe essere un tasto submit all'interno dell'elemento <form> a ricevere metodo di pagamento nonce.

+0

Sto usando braintree con js, ho aggiunto il pulsante submit all'interno del div id che ho menzionato nel contenitore, ma ancora non riesco ad ottenere il nonce, ottenendo invece Errore Uncaught: Non posso stringificare l'evento: JSON.stringify non è un funzione – Kamini

7

sto usando qui sotto JavaScript e la sua lavorando bene:

braintree.setup(clientToken, "custom", { 
    id: "my-sample-form", 
    hostedFields: { 
     number: { 
     selector: "#card-number" 
     }, 
     cvv: { 
     selector: "#cvv" 
     }, 
     expirationMonth: { 
     selector: "#expiration-month" 
     }, 
     expirationYear: { 
     selector: "#expiration-year" 
     }, 
    },onPaymentMethodReceived:function(nonce){ 
     console.log(JSON.stringify(nonce)); 
     return false; 

    } 
    } 

     ); 

Sopra dà seguito di risposta e NON inviare il modulo:

{"nonce":"ff2662e1-f1fd-42a3-a16f-d8f3213a2406","details":{"lastTwo":"11","cardType":"Visa"},"type":"CreditCard"} 

mezzi utilizzano onPaymentMethodReceived invece di paymentMethodNonceReceived

Grazie http://www.web-technology-experts-notes.in/2015/06/braintree-payment-gateway-integration.html

+0

Sto usando braintree con js, ho aggiunto il pulsante submit all'interno del div id che ho menzionato nel contenitore, ma ancora non riesco a ottenere nonce, ottenendo invece Errore Uncaught: Non posso stringificare l'evento: JSON.stringify non è una funzione. Si prega di aiutare – Kamini

2

https://github.com/braintree/braintree-web/issues/58

Per l'integrazione personalizzata con metodo di pagamento multipla, utilizzare onSuccess invece di onPaymentMethodReceived.

braintree.setup(TOKEN, 'custom', { 
    id: 'checkout', 
    paypal: { 
    container: 'paypal-container', 
    onSuccess: function (nonce, email) { 
     // This will be called as soon as the user completes the PayPal flow 
     // nonce:String 
     // email: String 
    } 
    }, 
    onPaymentMethodReceived: function(obj) { 
    // This will be called when the user submits the form 
    } 
}); 
+0

'OnSuccess' è stato [deprecato] (https://developers.braintreepayments.com/reference/client-reference/javascript/v2/paypal#options) –

Problemi correlati