Question

J'utilise la pierre précieuse paypal_adaptive avec Rails 3.1 pour effectuer des paiements enchaînées. Cependant, après avoir vu http://railscasts.com/episodes/143-paypal-security Je suis devenu inquiet que je devrais peut-être ajouter des mesures de sécurité à ma demande de paiement. Plus précisément, je ne veux pas que quelqu'un soit capable de manipuler les prix des articles que je vous envoie dans ma demande. Bien sûr, j'utilise la demande standard bijou 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

Ma question est la suivante: dois-je chiffrer cette demande pour empêcher les gens de l'évolution des prix comme Ryan fait dans ses rails casting? Si oui, comment puis-je manipuler ce code afin de le faire?

Était-ce utile?

La solution

validation IPN est certainement une bonne pratique. Mais en ce qui concerne le cryptage des variables envoyées à travers; non, ce n'est pas nécessaire.

L'exemple inscrit sur http://railscasts.com/episodes/143-paypal-security utilise Paiements sur site marchand, auquel cas il bon pour le chiffrez.

Les paiements d'adaptation est une série d'appels API de serveur à serveur (l'API « Pay »), à partir de votre serveur de PayPal. La seule partie exposée à l'acheteur est le payKey, un jeton temporaire que l'acheteur ne peut pas manipuler.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top