【发布时间】:2017-02-24 12:34:10
【问题描述】:
我正在开发一款 Rails 应用程序,该应用程序将具有可修改的购物车、可选择的运费,并通过简单的 PayPal 付款完成。根据 PayPal 开发者文档,Express Checkout 似乎是合适的,Rails 的一个简单方法可能是 Braintree 的 v.zero SDK。
根据PayPal client-side implementation(JS v2 SDK)的 Braintree Docs,我将有一个用于 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、金额等),最后完成交易。比如在server-side implementation docs for 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 路由到我的结帐方法。但仅使用 PayPal,如何从我的 PayPal 按钮路由到我的结帐方式?
谢谢
【问题讨论】:
标签: ruby-on-rails paypal braintree