Ajax Enviar problema – Carriles

No estoy convencido de que mi solución para enviar una transacción de braintree a través de Rails UJS y Ajax sea correcta, la razón es que estoy viendo dos llamadas ajax en lugar de una al enviar.

Por ejemplo, cuando se desactiva el ajax (por lo tanto, eliminar el control remoto: verdadero) el envío de un formulario parece esperar por un informe antes de enviar el pago (creo que braintree asume el evento de envío)

Parameters: {"utf8"=>"✓", "authenticity_token"=>"token_here", "first_name"=>"", "last_name"=>"", "payment_method_nonce"=>"nonce_here_populated"} 

Pero al enviar con remoto: verdadero habilitado, la primera llamada es

 Parameters: {"utf8"=>"✓", "authenticity_token"=>"token_here=", "first_name"=>"", "last_name"=>""} 

Así que leí que onPaymentMethodRecieved esperar a que nonce use la función de callback onPaymentMethodRecieved , adjuntar el nonce al formulario y luego enviar

 braintree.setup(gon.client_token, 'dropin', { container: 'dropin-container', onPaymentMethodReceived: function (paymentMethod) { $('#braintree-transaction-form').append(""); $("#braintree-transaction-form input[type='submit']").submit(); } }); 

Esto resulta en dos llamadas que se hacen

1)

 Parameters: {"utf8"=>"✓", "authenticity_token"=>"token_here=", "first_name"=>"", "last_name"=>""} 

2)

 Parameters: {"utf8"=>"✓", "authenticity_token"=>"token_here", "first_name"=>"", "last_name"=>"", "payment_method_nonce"=>"nonce_here_populated"} 

El único problema es que tengo esto en mi controlador que no creo que sea correcto

 def create nonce = params[:payment_method_nonce] render action: :new and return unless nonce # Is this the way to wait for the nonce @result = Braintree::Transaction.sale( amount: 2500, payment_method_nonce: nonce, customer: { first_name: params[:first_name], last_name: params[:last_name] } ) end 

Mi preocupación, supongo, son las dos llamadas que se están realizando y el código de mi controlador.

¿Alguien tiene alguna experiencia con las llamadas de Ajax con Braintree y Rails?

Gracias

Revelación completa: trabajo en Braintree. Si tiene más preguntas, no dude en ponerse en contacto con el servicio de asistencia .

Es posible que tenga un problema con el comportamiento predeterminado de su botón de envío, que es algo que podría intentar deshabilitar . Sin embargo, no hay nada aquí para pensar que ese es el problema. Lo más probable es que haya un problema en otra parte de su configuración. Realmente recomendaría ponerse en contacto con el servicio de asistencia de Braintree con sus ejemplos de código completo para ayudarles a resolver su problema.