Проблемы безопасности с гемом paypal_adaptive - PullRequest
1 голос
/ 14 января 2012

Я использую гем paypal_adaptive с Rails 3.1 для осуществления цепных платежей.Однако после просмотра http://railscasts.com/episodes/143-paypal-security я забеспокоился, что, возможно, мне следует добавить меры безопасности к моему запросу на оплату.В частности, я не хочу, чтобы кто-то мог манипулировать ценами на товары, которые я отправляю в своем запросе.Конечно, я использую стандартный запрос gem paypal_adaptive:

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

Мой вопрос: мне нужно зашифровать этот запрос, чтобы люди не меняли цены, как Райан в своем рельсе?Если так, как я могу манипулировать этим кодом, чтобы сделать это?

1 Ответ

2 голосов
/ 14 января 2012

Проверка IPN - определенно хорошая практика.Но что касается шифрования передаваемых переменных;нет, это не обязательно

В примере, указанном на http://railscasts.com/episodes/143-paypal-security, используется стандарт платежей через веб-сайт, в этом случае подходит для шифрования.

Но Adaptive Payments - это серия вызовов API от сервера к серверу (API «Pay») от вашего сервера до PayPal.Единственная часть, представленная покупателю, - это payKey, временный токен, которым покупатель не может манипулировать.

...