Utilisation de paypal et cryptage

Bonjour,

J’essaye de mettre en place le paiement en ligne via paypal. Je me
suis inspiré des railscasts de Ryanbates, la seule différence c’est
que je n’ai pas mis l’accès au site paypal dans une form mais j’ai
utilisé un redirect_to dans mon controleur (et ça marche bien) mais je
me demandais si j’avais du coup besoins de crypter mon envoi à paypal
comme décrit dans le railscast 143?

Merci

Moi je crypte comme ça j’ai pas à vérifier si les montants payés
correspondent à aux bon montants facturés.

Mais moi je compare la notification avec la commande

Tranquiliste wrote:

Mais moi je compare la notification avec la commande
Tu parles de la notification de paiement? Dans ce cas s’il y a eu
magouille c’est déjà trop tard.

Paypal a plusieurs modes de fonctionnement mais comme tu ne dis pas
lequel tu utilises c’est pas très clair.

En fait dans mon contrôleur, je récupère le produit que l’utilisateur
a choisi d’acheter , avec l’id je recpere le prix et j’envoie tout à
paypal VIA un rzdirect_to et au retour de la notif je teste que
çacorrespond.

Bon je ne comprends toujours pas quel danger court mon paiement, mais
je vais mettre en place le cryptage (ça ne mange pas de pain).

Par contre j’ai une petite question sur la transformation de ma
méthode car je procède dans le contrôleur par un redirect_to
(@order.paypal_encrypted(return_url, notif_url)) et non pas dans la
form comme l’explique Ryan B.,
Actuellement j’ai dans mon model Order:
def paypal_encrypted(return_url, notify_url)
values = {
:business => APP_CONFIG[:paypal_email],
:cmd => ‘_cart’,
:upload => 1,
:return => return_url,
:invoice => id,
:notify_url => notify_url,
:cert_id => APP_CONFIG[:paypal_cert_id],
:currency_code => ‘EUR’,
:amount_1 => product.price_ttc,
:item_name_1 => product.name,
:item_number_1 => product_id,
:item_quantity_1 => 1
}
APP_CONFIG[:paypal_url] + encrypt_for_paypal(values)
end

def encrypt_for_paypal(values)
values.to_query
end

Dans la méthode de Ryan bates avec la sécurité, cela devient
def encrypt_for_paypal(values)
signed = OpenSSL::PKCS7::sign(OpenSSL::X509::Certificate.new
(APP_CERT_PEM), OpenSSL::PKey::RSA.new(APP_KEY_PEM, ‘’), values.map { |
k, v| “#{k}=#{v}” }.join("\n"), [], OpenSSL::PKCS7::BINARY)
OpenSSL::PKCS7::encrypt([OpenSSL::X509::Certificate.new
(PAYPAL_CERT_PEM)], signed.to_der, OpenSSL::Cipher::Cipher::new
(“DES3”), OpenSSL::PKCS7::BINARY).to_s.gsub("\n", “”)
end

Mais je ne suis pas sur que ça marche avec mon
APP_CONFIG[:paypal_url] + encrypt_for_paypal(values)

Quelqu’un peut me confirmer la syntaxe que je dois employer?

Merci
Nicolas

Désolé des fautes, j’ai écrit le post précédent de mon téléphone.

En réfléchissant un peu,je pense que quelque chose comme ça devrait
marcher

APP_CONFIG[:paypal_url] + "cmd=_s-xclick"+ "&encrypted=#

{encrypt_for_paypal(values)}"

Je vais faire des tests ce week end :smiley: