Ruby on rails paypal_adaptive gem的安全问题

Ruby on rails paypal_adaptive gem的安全问题,ruby-on-rails,ruby-on-rails-3,paypal,paypal-adaptive-payments,Ruby On Rails,Ruby On Rails 3,Paypal,Paypal Adaptive Payments,我正在使用paypal_adaptive gem和Rails 3.1进行连锁支付。然而,在看了之后,我开始担心我可能应该在我的付款请求中添加安全措施。具体来说,我不希望有人能够操纵我在请求中发送的物品的价格。当然,我使用的是标准的paypal_自适应gem请求: pay_request = PaypalAdaptive::Request.new data = { "returnUrl" => "http://testserver.com/payments/completed_paymen

我正在使用paypal_adaptive gem和Rails 3.1进行连锁支付。然而,在看了之后,我开始担心我可能应该在我的付款请求中添加安全措施。具体来说,我不希望有人能够操纵我在请求中发送的物品的价格。当然,我使用的是标准的paypal_自适应gem请求:

pay_request = PaypalAdaptive::Request.new

data = {
"returnUrl" => "http://testserver.com/payments/completed_payment_request", 
"requestEnvelope" => {"errorLanguage" => "en_US"},
"currencyCode"=>"USD",  
"receiverList"=>{"receiver"=>[{"email"=>"testpp_1261697850_per@nextsprocket.com",     "amount"=>"10.00"}]},
"cancelUrl"=>"http://testserver.com/payments/canceled_payment_request",
"actionType"=>"PAY",
"ipnNotificationUrl"=>"http://testserver.com/payments/ipn_notification"
}

pay_response = pay_request.pay(data)

if pay_response.success?
  redirect_to pay_response.approve_paypal_payment_url
else
  puts pay_response.errors.first['message']
  redirect_to failed_payment_url
end

我的问题是:我是否需要加密此请求以防止人们像Ryan在rails cast中那样更改价格?如果是这样的话,我如何操作这段代码才能做到这一点呢?

IPN验证无疑是一种很好的做法。但是关于加密发送的变量;不,没有必要

上列出的示例使用网站支付标准,在这种情况下,最好对其进行加密


但自适应支付是一系列服务器到服务器的API调用(“支付”API),从您的服务器到PayPal。买家唯一能看到的部分是payKey,这是一种买家无法操纵的临时代币。

谢谢,罗伯特!我接受这个答案。不过,有一个问题有些不相关:我一直在使用这些API调用访问沙箱中的帐户——你知道我是否需要Website Payments Pro才能在生产中进行这些API调用吗?我一直在寻找这个问题的答案,你似乎对贝宝很了解,所以我想我会问你;如果要使用DoDirectPayment API调用,则需要Website Payments Pro。对于自适应支付,您需要通过提交应用程序,然后您将获得应用程序ID。您需要确保在HTTP报头中传递此应用程序ID(您可能已经在执行此操作,现在在沙盒中)。我自己不使用自适应支付(我不需要链接/拆分支付,因此我不需要它),但是你可以在PayPal上登录一张罚单,以获得应用程序上线所需的确切步骤。谢谢。非常有用的评论。