Pregunta

Estoy usando la gema paypal_adaptive con rieles 3.1 para realizar pagos encadenados. Sin embargo, después de mirar http://railscasts.com/episodes/143-paypal-security Me preocupa que quizás debería agregar medidas de seguridad a mi solicitud de pago. Específicamente, no quiero que alguien pueda manipular los precios de los artículos que envío a mi solicitud. Por supuesto, estoy usando la solicitud estándar de 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

Mi pregunta es: ¿necesito cifrar esta solicitud para evitar que las personas cambien de precios como Ryan en su elenco de rieles? Si es así, ¿cómo puedo manipular este código para hacerlo?

¿Fue útil?

Solución

La validación de IPN es definitivamente una buena práctica. Pero con respecto a cifrar las variables enviadas; No, eso no es necesario.

El ejemplo enumerado en http://railscasts.com/episodes/143-paypal-security utiliza el estándar de pagos del sitio web, en cuyo caso se es Es bueno cifrarlo.

Pero Adaptive Payments es una serie de llamadas de API de servidor a servidor (la API 'Pay'), desde su servidor hasta PayPal. La única parte expuesta al comprador es el PayKey, una ficha temporal que el comprador no puede manipular.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top