[英](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.