Domanda

Sto usando la gemma PayPal_Adaptive con Rails 3.1 per effettuare pagamenti incatenati. Tuttavia, dopo aver visto http://railscasts.com/episodes/143-paypal-security Mi sono preoccupato che dovrei forse aggiungere misure di sicurezza alla mia richiesta di pagamento. In particolare, non voglio che qualcuno sia in grado di manipolare i prezzi degli articoli che invio nella mia richiesta. Naturalmente, sto usando la richiesta di gemma PayPal_Adaptive standard:

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

La mia domanda è: devo crittografare questa richiesta per impedire alle persone di cambiare i prezzi come il cast di Ryan nei suoi binari? In tal caso, come posso manipolare questo codice per farlo?

È stato utile?

Soluzione

La convalida IPN è decisamente buona pratica. Ma per quanto riguarda la crittografia delle variabili inviate; No, non è necessario.

L'esempio elencato su http://railscasts.com/episodes/143-paypal-security Utilizza lo standard dei pagamenti del sito Web, nel qual caso è Buono per crittografarlo.

Ma Adaptive Payments è una serie di chiamate API da server-server (l'API "Pay", dal tuo server a PayPal. L'unica parte esposta all'acquirente è il paykey, un token temporaneo che l'acquirente non può manipolare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top