2016-02-06 3 views
0

Я не уверен, что мое решение отправить транзакцию braintree через Rails UJS и Ajax правильное, причина в том, что я вижу два вызова ajax, а не один при отправке.Ajax Отправить вопрос - Rails

Например при повороте Аякса выключения (поэтому удаление удаленное: правда) представление формы, кажется, ждать нонса перед отправкой платежа (я считаю Брэйнтри перенимает отправить событие)

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

Но при подаче с пульта дистанционного управления: правда включен первый вызов

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

Так я читал, что я должен ждать этого одноразового номера с использованием функции обратного вызова onPaymentMethodRecieved, добавьте случайное слово в форме, а затем представить

braintree.setup(gon.client_token, 'dropin', { 
    container: 'dropin-container', 
    onPaymentMethodReceived: function (paymentMethod) { 
    $('#braintree-transaction-form').append("<input id='p_nonce' type='hidden' name='payment_method_nonce' value='" + paymentMethod.nonce + "'></input>"); 
    $("#braintree-transaction-form input[type='submit']").submit(); 
    } 
}); 

В результате двух вызовов делаются

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"} 

Только проблема в том, у меня есть это в мой контроллер, который не думаю, что это правильно

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 

моя озабоченность, я думаю, это два звонка и мой код контроллера.

Кто-нибудь есть опыт работы с Ajax звонки с Braintree и Rails

Благодаря

ответ

0

Полное раскрытие: я работаю в Braintree. Если у вас есть дополнительные вопросы, не стесняйтесь обращаться к support.

Возможно, у вас возникла проблема с поведением вашей кнопки отправки по умолчанию, которая равна something you could try disabling. Однако здесь нет ничего, чтобы думать, что это проблема. Скорее всего, в вашей настройке есть проблема. Я бы рекомендовал обратиться к Braintree support с вашими полными образцами кода, чтобы помочь им пройти вашу проблему.

Смежные вопросы