簡體   English   中英

(Rails)使用Braintree v.zero SDK支付PayPal

[英](Rails) PayPal payment with Braintree v.zero SDK

我正在開發一個Rails應用程序,該應用程序將具有可修改的購物車,可選擇的運費,以及簡單的PayPal付款。 根據PayPal開發人員文檔,Express Checkout似乎是合適的,Rails的簡單方法可能是Braintree的v.zero SDK

根據PayPal客戶端實現的Braintree Docs(JS v2 SDK),我將有一個PayPal按鈕的容器和一個包含所有選項的javascript和一個提供的Client-Token:

<div id="paypal-container"></div>

<script type="text/javascript">
  braintree.setup("CLIENT-TOKEN-FROM-SERVER", "custom", {
    paypal: {
      container: "paypal-container",
    },
    onPaymentMethodReceived: function (obj) {
      doSomethingWithTheNonce(obj.nonce);
    }
  });
</script>

提交此按鈕應該從braintree獲取payment_method_nonce,調用服務器端方法來填寫必要的付款信息(payment_method_nonce,金額等),最后完成交易。 比如在ruby的服務器端實現文檔中:

def checkout
    result = Braintree::Transaction.sale(
      :amount => "10.00",
      :payment_method_nonce => params[:payment_method_nonce],
      :order_id => "Mapped to PayPal Invoice Number",
      :options => {
        :paypal => {
          :custom_field => "PayPal custom field",
          :description => "Description for PayPal email receipt",
        },
      }
    )
    if result.success?
      "Success ID: #{result.transaction.id}"
    else
      result.message
    end
  end

我想,我基本上理解這個程序,但我不知道javascript如何路由到我的服務器端方法。 有了信用卡表格,我可以定義一個目標來發布到/checkout ,並將/checkout路由到我的checkout方法。 但只使用PayPal, 如何從我的PayPal按鈕路由到我的結賬方式?

謝謝

完全披露:我在Braintree工作。 如果您有任何其他問題,請隨時聯系支持

Braintree的javascript SDK會生成新的payment_method_nonce ,但它不會自動將其發送到您的服務器。 這個過程的一部分由你決定。 您可以通過實現onPaymentMethodReceived回調來訪問和使用新的nonce:

<script type="text/javascript">
  braintree.setup("CLIENT-TOKEN-FROM-SERVER", "custom", {
    paypal: {
      container: "paypal-container",
    },
    onPaymentMethodReceived: function (obj) {
      // you may submit the nonce to your server here
      doSomethingWithTheNonce(obj.nonce);
    }
  });
</script>

該函數, doSomethingWithTheNonce是一個占位符,表示這是你處理nonce的地方。 您可能正如您所想的那樣,將一個帖子設置為端點,例如/checkout 您還可以在用戶稍后提交的表單中設置nonce,然后在提交表單時從表單中選取nonce。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM