IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[PayPal] Redirection HTTP sur serveur de paiement via method POST


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut [PayPal] Redirection HTTP sur serveur de paiement via method POST
    Bonjour à tous,

    Tout d'abord je tiens à préciser que je ne suis pas encore très habitué à manipuler des en têtes http donc toute aide est la bienvenue

    Voila mon soucis :

    Je développe un site e-commerce, sur la page de récapitulatif d'une commande à envoyer, je souhaite proposer à l'utilisateur plusieurs méthodes de paiement :chèque, livraison, Paiement en ligne classique ET via Paypal.

    Le mode d'intégration de Paypal, comme vous devez surement le savoir, se fait via un formulaire listant toute une série de champs <input type="hidden" ...> et du bouton submit redirigeant vers leur serveur de paiement.

    Mon problème viens du fait que, souhaitant proposer différents choix de paiement à mon client, je ne souhaite pas afficher directement le formulaire paypal dans ma page, mais plutôt rediriger l'utilisateur sur le serveur de paiement paypal avec une liste de données POST associées à la redirection dans le cas ou le client a coché la case Paypal.

    J'ai d'abord essayé une solution trouvée sur le site de php.net sans succès. Plutôt que de me rediriger sur le serveur, une boîte de téléchargement s'ouvrait me demandant avec quel programme je voulais enregistrer un fichier avec un nom très spécial.
    Le code était le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if($macommande->mode_paiement == 'PAYPAL') {
     
    	/* Redirection sur le serveur PAYPAL de test de paiement */
    	header("POST /fr/cgi-bin/webscr HTTP/1.0\r\n" );
    	header("Host: www.sandbox.paypal.com\r\n" );
    	header("Content-type: application/x-www-form-urlencoded\r\n" );
            // $request : liste des données post à envoyer au serveur paypal sous la forme mavar=$mavar&mavar2=$mavar2 etc ...
    	header("Content-length: " . strlen($request) . "\r\n" );
    	header("Connection: close\r\n\r\n" );
    	header($request);
    	exit;
    }
    Après plusieurs recherches sur la toile je n'ai trouvé aucune solution pour effectuer une redirection simple chargée de données POST, par contre j'ai vu beaucoup de pistes proposant d'utiliser l'extension cURL.

    En adaptant mon code pour cURL j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if($macommande->mode_paiement == 'PAYPAL') {
    	$ch = curl_init();
    	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    	curl_setopt($ch, CURLOPT_URL,  "https://www.sandbox.paypal.com/fr/cgi-bin/webscr");
    	curl_setopt($ch, CURLOPT_POST, 1);
    	curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    	curl_exec($ch);
    	curl_close($ch);
    	exit;
    }
    Ca fonctionne beaucoup mieux et me redirige bien vers le serveur, par contre l'URL de la barre d'adresse ne change pas et reste celle de la page de validation de paiement sur ma boutique, de plus, je dois avoir loupé quelque chose au niveau des cookies, puisqu'une fois redirigé sur le serveur paypal, celui me demande de me connecter préalablement à mon compte test sur developer.paypal.com (obligatoire pour effectuer les tests de paiement), alors que j'y suis déjà connecté.

    J'ai donc fait vraisemblablement une fausse manip que n'arrive pas à cerner, c'est pourquoi je m'en remet à vous...

    Si quelqu'un peut m'aider, je lui en remercie d'avance !

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Je poste pour dire que j'ai exactement le même problème.
    J'ai essayé les mêmes solutions que toi et même fsockopen mais toujours pareil.

    As-tu trouvé une solution ?

    A++

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Non j'ai lâché l'affaire...
    C'est peut être dû à leur environnement de test, mais pour vérifier ça, il faudrait faire des test en mode réel... je vais pas m'y risquer
    J'ai posté au support technique paypal mais on m'a carrément répondu à côté de la plaque, donc j'en déduis qu'il vaut mieux abandonner cette histoire.

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    D'accord, c'est un peu pareil pour moi j'ai posté sur d'autres forums et c'est pareil aucune réponse satisfaisante.

    Merci quand même je continue mes recherches quand même on ne sait jamais.

    Si je trouve je posterai la solution.

    A++

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    sur le site paypal.fr :
    - https://www.paypal-france.fr/marchan...l-integral.php
    --> solutions dans le menu à gauche
    - https://www.paypal-france.fr/marchan...taller-paypal/
    - https://www.paypal-france.fr/marchan...ides_detailles

    On trouve des scripts d'intégration de "paiement paypal".
    Mais, bon, il faut avouer que ce n'est pas simple de s'y retrouver ...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'ai trouvé d'autres sources d'info :
    http://paypal.over-blog.net/article-3598934.html
    http://www.informatique-rodez.fr/tut...er-maintenant/

    Par contre je n'utilise pas cUrl

    Thierry

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    et pourquoi ne pas utiliser la fonction proposée par Tsako dans ce post :
    http://www.developpez.net/forums/d78...pres-paiement/

Discussions similaires

  1. Requete HTTP sur serveur distant
    Par xenoise dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/11/2008, 12h24
  2. redirection http vers serveur web
    Par Jonathan.b dans le forum Apache
    Réponses: 16
    Dernier message: 11/07/2008, 10h53
  3. Réponses: 3
    Dernier message: 23/10/2007, 23h26
  4. Redirection HTTPS sur Apache
    Par kelu dans le forum Apache
    Réponses: 1
    Dernier message: 02/12/2005, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo