Aller au contenu

Sujets conseillés

Posté (modifié)

Bonjour et merci d'avance de l'attention que vous allez porter à mon problème.

Jusqu'à présent, j'utilisais l'interface simple de paiement paypal sur mes sites commercants, c'est à dire le simple formulaire qui se transmettait à paypal et une fois le paiement du client validé, paypal me retournait une multitude de valeurs de retour (payments_statuts, ...) que j'analysais et que je traitais.

Cependant, je ne sais pas si vous avez pu le constater mais recement, paypal à modifier sa page de paiement.

Depuis cette nouvelle page de paiement, une fois que le client valide ces achats, paypal ne me retourne plus AUCUNES informations !

En faisant un <?php echo $req;?> sur ce code (après que paypal ai renvoyé mon client sur le site commercant et que le paiement ai été effectué)

$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {

$value = urlencode(stripslashes($value));

$req .= "&$key=$value";

}

Et bien rien de plus que 'cmd=_notify-validate' ne s'affiche. Je n'ai plus aucune variable globale de retour transmise par paypal.

Je tiens à préciser que la veille de l'installation de cette nouvelle page (il y a quelques jours de cela), tout fonctionnait encore parfaitement.

Je ne trouve pas de solution depuis plusieurs jours et c'est vraiment en dernier recours que je viens tatillonner votre savoir afin de m'aider.

Si vous avez la moindre petite idée je suis preneur.

Cordialement,

Freakz-Design.

EDIT : A positionner dans la section e-commerce peut-être ? En réalité c'est vraiment un problème php pour moi donc c'est pour ca que je l'ai posté ici, mais si necessaire ne pas hesiter à le deplacer.

Modifié par Freakz
Posté

Ton script, il est bien sur IPN et pas sur la page de retour à la boutique? Le retour à la boutique est notoirement peu sûr pour récupérer les données (ne serait-ce que parce que dans de nombreux cas le client ne revient pas à la boutique, par exemple parce qu'il est effrayé par le message d'alerte à cause du POST vers une url non sécurisée). La bonne solution consiste à utiliser IPN, si ce n'est pas déjà le cas.

Jacques.

Posté (modifié)

Merci pour ta réponse.

Dans ma premiere initiation au paiement Paypal, j'avais essayé de passer par l'IPN mais je n'ai jamais réussi à comprendre le fonctionnement ni à le faire marcher.

Donc je m'étais résolu à passer par la validation au retour boutique.

Cependant je sais pertinament que cette solution n'étais pas sure à 100% dans le sens ou les utilisateurs pouvaient ne pas revenir à ma boutique et/ou alterer quelques variables au retour sur le site marchand.

Sans vouloir en demander trop, mais concernant l'IPN, faut il renseigner quelque part sur le site de Paypal l'adresse de retour ou bien le :

<input name="notify_url" type="hidden" value=&quot;http://www.*********.com/ipn.php" /> suffit ?

En tout cas merci beaucoup pour la réponse.

Cordialement,

Freakz-Design

Modifié par Freakz
Posté

Tu peux faire comme tu veux, soit le mettre dans tes préférences dans le compte Paypal, soit le mettre dans ton formulaire avec le notify_url (ce dernier l'emporte sur les préférences dans le compte).

Jacques.

Posté (modifié)

Et bien je m'y suis mit toute l'après-midi et je doit dire que j'ai bien avancé.

Je suis à deux doigt du fonctionnement complet. (Le paiement fonctionne ! Et les envoies de mails au client via IPN aussi)

Cependant une derniere petite chose me tracasse.

Voici le fonctionnement de mon panier :

Le client sur mon site commercant rempli son panier.

Ensuite il entre ses données personnelles de livraisons puis le panier et ses données personnelles sont enregistrées dans ma base de données.

Au moment de l'enregistrement, une clé unique est créee (oui, en plus de l'ID du la nouvelle ligne). Cette clé (sur 32 alpha/num) me permettra de retrouver plus facilement cette transaction par la suite.

Ensuite, accès au bouton Paypal pour payer une fois que toutes les infos sont bien enregistrées.

Le client se retrouve sur le site Paypal et paye.

Au moment de la confirmation du paiement, quand Paypal arrive sur mon fichier d'IPN, comment je fais (une fois que j'ai obtenu VERIFIED et Completed...) pour retrouver dans ma base la ligne de cette transaction afin de la passé en "Payée" ?

Mon idée (qui ne fonctionne pas) à été d'utiliser la clé mentionnée plutot et de la transmettre eu formulaire paypal en name="custom".

Sauf qu'au moment de l'IPN quand j'essaie de récuperer la variable $key = $_POST["custom"], niet !

Peut-etre que mon idée était sogrenue, mais je pensais que paypal me renverais toutes les variables que je mettrais dans le fomulaire.

Tout idée serait la bien venue.

Merci d'avance.

Freakz-Design

Modifié par Freakz
Posté

Custom est bel est bien passé via IPN, de même que invoice (ce dernier permet d'éviter les paiements en double). Si tu ne le récupères pas dans ton IPN, c'est a priori que tu ne l'envoies pas... Custom est affiché dans l'interface Paypal quand tu regardes le détail d'une transaction. Tu peux aussi vérifier dans l'historique de l'IPN.

Ceci dit, quel est l'intérêt d'avoir cette clef alphanumérique en plus de l'ID de la commande?

Jacques.

Posté

Un très grand merci à vous/toi pour ton aide apportée.

Ca fonctionne. La dernière erreur venait d'une erreur de code de ma part (faute d'orthographe apparement).

La clé me servira en numero de la facture (code de facture), plutot que d'utiliser l'ID de la ligne.

Pfiou, il me reste plus qu'à rendre tout ca un peu plus joli et hop, en ligne !

Merci encore pour tes conseils.

Freakz-Design

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...