Page 1 sur 1

paypal

Posté : 13 mars 2005, 15:23
par dudu59
Bonjour,

Je sèche sur Paypal à la confirmation de réception d'un paiement.

Voici l'url reçue par exemple suite à un paiement effectué sur mon site :
http://www.monsite.com/success.php?tx=6 ... mcmdBMuWa0

Je n'arrive pas à récupérer le n° de panier et de la commande envoyé à la base :

//n° du panier
$paypal[item_name]="$_POST[item_name]";
$paypal[item_number]="$_POST[item_number]";

//montant du panier
$paypal[amount]="$_POST[amount]";
le montant est facilement récupérable avec la variable amt dans l'url.

Pour le reste, je n'arrive pas à decrypter la variable tx, st et sig de cette url ni à connaître leur signification.

Quelqu'un peut m'aider à décrypter cette url en php avec Paypal ? O:-)
Pour info, je suis plutôt du type "autodidacte" et la partie cryptage, M'pas trop...
Merci.

Posté : 13 mars 2005, 16:58
par flitox
Et avec ça?
//n° du panier
$paypal['item_name']=$_POST['item_name'];
$paypal['item_number']=$_POST['item_number'];

//montant du panier
$paypal['amount']=$_POST['amount'];

Posté : 14 mars 2005, 00:45
par Invité
En fait, tout roule jusqu'à la confirmation du paiement.

Je voudrait récupérer les infos de ma transaction en clair pour finaliser ma commande dans ma BDD.

C'est une NIP qui transmet un jeton d'identité codé.
Il faut un script CGI pour dialoguer avec le serveur Paypal pour me retourner les valeurs en clair du type par le biais d'un HTTP POST vers paypal.

Voilà le type d'infos que devrait me renvoyer paypal :
REUSSITE
payment_status=Completed
payment_gross=150
mc_currency=EUR
...
avec mon n° de panier de départ et mon n° de commande de départ.

Voilà le code fourni par paypal que j'ai mis en intro sur ma page success.php :

Code : Tout sélectionner

$req = 'cmd=_notify-validate'; foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $req .= "&$key=$value"; } // renvoyer au système PayPal pour validation $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30); // affecter les variables publiées aux variables locales $item_name = $_POST['item_name']; $item_number = $_POST['item_number']; $payment_status = $_POST['payment_status']; $payment_amount = $_POST['mc_gross']; $payment_currency = $_POST['mc_currency']; $txn_id = $_POST['txn_id']; $receiver_email = $_POST['receiver_email']; $payer_email = $_POST['payer_email']; if (!$fp) { // ERREUR HTTP } else { fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); if (strcmp ($res, "VERIFIE") == 0) { // vérifier que payment_status est Terminé // vérifier que txn_id n'a pas été précédemment traité // vérifier que receiver_email est votre adresse email PayPal principale // vérifier que payment_amount et payment_currency sont corrects // traiter le paiement } else if (strcmp ($res, "NON VALIDE") == 0) { // consigner pour enquête manuelle } } fclose ($fp); }
Est-ce que c'est le bon emplacement ?
Comment envoyer le HTTP POST vers paypal ?

Si quelqu'un c'est déjà fait les dents la-dessus, je veux bien de son aide... :wink:

Posté : 14 mars 2005, 00:49
par dudu59
oups, j'avais oublié de signaler ma présence.

Pour faire suite au message, l'url devient maintenant plus longue avec ces variables :
http://www.monsite.com/success.php?tx=2 ... W8nJzf4%3d :roll:

Posté : 18 mars 2005, 00:49
par dudu59
personne pour m'aider à décrypter cette url ?? :cry:

Posté : 18 mars 2005, 01:48
par ImBrOgLiO
Si tu es client de PayPal, pourquoi ne pas leur demander directement la signification exacte de tous les éléments de l'URL?

Posté : 18 mars 2005, 11:19
par dudu59
Je souci, c'est que toute la partie "développeur" est en Anglais. Et pour tout dire, je ne comprend pas tout...
:?
J'aurais aimé profiter de l'expérience de quelqu'un pour finaliser cette étape afin de mettre en relation de paiement avec ma BDD. Etant plutôt du type "autodidicate", je patauge un peu dès que ça se complique... J'ai vérifié dans le kit php que paypal fournit mais je bloque sur les NIP.

Posté : 18 mars 2005, 16:34
par Cyrano
Est-ce que par hasard PayPal ne fournirait pas des exemples de scripts pour le CGI de validation ?

Pour ce qui est de décortiquer ton url, elle se découpe facilement :
nomDuSite.com/page.php ... jusque là, rien de complexe
? là, c'est le début des paramètres
param=valeur ... sans commentaire
& séparateur de paramètres
Le problème, c'est le décryptage des valeurs de paramètre: quel est l'algorithme de cryptage, y-a-t-il une clé de cryptage et si oui, y as-tu accès ?

Regarde bien dans la package PayPal, tu sa sûrement des infos utiles à trouver pour tout ça.
Je pourrais pas t'aider beaucoup, j'ai un peu le même genre de problème avec un Kit CyberMut...

Posté : 22 mars 2005, 10:56
par newto0

Posté : 22 mars 2005, 12:04
par dudu59
J'ai enfin trouvé.
Il fallait ajouter la clé de déchiffrement au moment où mon serveur dialogue avec le serveur paypal pour échanger et vérifier les données

voici le bout de code en intro de la page success.php :

Code : Tout sélectionner

$req = 'cmd=_notify-synch'; $tx_token = $_GET['tx']; $auth_token = "n° de la clé de déchiffrement"; $req .= "&tx=$tx_token&at=$auth_token";
C'est plus facile de réfléchir à plusieurs :D
Je cloture...