2017-10-16 7 views
1

Im은 페이드 버튼을 호스팅 된 형태로 렌더링합니다. 그러나 서버에 nonce를 보내는 방법을 알 수 없습니다. 이 섹션에서는 어떻게해야합니까?서버에 payload nonce를 제출하십시오 Braintree SDK Paypal ruby ​​rails

onAuthorize: function (data, actions) { 
     return paypalCheckoutInstance.tokenizePayment(data) 
      .then(function (payload) { 
      // Submit `payload.nonce` to your server 

     //console.log (payload.nonce) 
    }); 
}, 

내 컨트롤러 액션 당신은 서버에 지불 넌스를 전달하는 자바 스크립트의 요청을 생성해야합니다

def payment 
    Cart.find(session[:cart_id]) 
    result = Braintree::Transaction.sale(
      amount: current_order.subtotal, 
      payment_method_nonce: params[:payment_method_nonce], 
      :options => { 
       :submit_for_settlement => true}, 
     ) 
    response = {:success => result.success?}   
    if result.success? 
    response[:transaction_id] = result.transaction.id 
    current_order.update(status: "purchased") 
    ReceiptMailer.purchase_order(current_passenger, 
     current_order).deliver_now 
    redirect_to root_path, 
    notice: "Thank you for booking, Please check your email for invoice" 
    session.delete(:cart_id) 

    elsif result.transaction 
    redirect_to cart_path, alert: "something went wrong, your transactions was not successful!" 
    end 
end 

답변

1

입니다. 다음은 jQuery의 ajax 메소드를 사용하여 요청을 생성하는 간단한 예제입니다.

$.ajax({ 
    method: "POST", 
    url: "/payment", 
    data: { payment_method_nonce: payload.nonce } 
}) 
+0

감사합니다. 괜찮 았어. – Sebala