【发布时间】:2020-11-23 23:50:23
【问题描述】:
我正在运行 Rails 5.2,目前我的 PayPal Checkout 设置如下:
查看:
paypal.Buttons({
env: "#{ENV['PAYPAL_ENV']}",
createOrder: async () => {
const response = await fetch('/create_order', {method: 'POST'});
const responseData = await response.json();
return responseData.token;
},
控制器:
def create_order
price = '100.00'
request = PayPalCheckoutSdk::Orders::OrdersCreateRequest::new
request.request_body({
:intent => 'CAPTURE',
:purchase_units => [
{
:amount => {
:currency_code => 'USD',
:value => price
}
}
]
})
begin
response = @client.execute request
order = Order.new(order_params)
order.price_cents = price.to_i
order.token = response.result.id
if order.save
return render :json => {:token => response.result.id}, :status => :ok
end
rescue PayPalHttp::HttpError => ioe
return render html: ERROR_MESSAGE
end
end
但是...我宁愿像这样处理 JavaScript 中的请求正文:
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: document.getElementById('payprice').value
}
}]
});
},
如何设置我的控制器,以便它仍然给我 PayPal 令牌...但它接受来自视图中 JavaScript 的请求正文,而不是现在设置的方式?或者......失败了......我怎样才能从视图(价格)中获取表单数据到控制器中以替换那里的“价格”?
【问题讨论】:
标签: javascript ruby-on-rails paypal