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

Langage PHP Discussion :

Paypal ExpressCheckOut


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Par défaut Paypal ExpressCheckOut
    Bonjour,

    Depuis des jours et de longues discussions (inutiles) avec le support Paypal, j'ai de nombreux problèmes que je ne comprends pas.

    Le premier est que le prix ne s'affiche pas quand j'arrive sur Paypal alors que mon URL est correcte.

    L'image :
    Nom : bug1.jpg
Affichages : 339
Taille : 12,2 Ko

    L'URL envoyée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://api-3t.sandbox.paypal.com/nvp?VERSION=85&USER=XXXXX&PWD=PPPPP&SIGNATURE=XXX.XXXXXXX&METHOD=SetExpressCheckout&CANCELURL=http%3A%2F%2Fdomaine%2Fcancel.php&RETURNURL=http%3A%2F%2Fdomaine%2Freturn.php&AMT=9.99&CURRENCYCODE=EUR&DESC=30+Jours&LOCALECODE=FR&CUSTOM=43&HDRIMG=http%3A%2F%2Fdomaine%2Fimages%2Flogo.png
    Mon deuxième problème est au retour. Je n'arrive pas à récupérer les données.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    j'ai copié collé ton url et j'obtiens bien un résultat :
    TIMESTAMP=2014%2d05%2d30T07%3a21%3a11Z&CORRELATIONID=681b4d3295ecc&ACK=Failure&VERSION=85&BUILD=11196751&L_ERRORCODE0=10002&L_SHORTMESSAGE0=Security%20error&L_LONGMESSAGE0=Security%20header%20is%20not%20valid&L_SEVERITYCODE0=Error
    Pour utiliser correctement Paypal Express Checkout, tu dois passer de préférence par l'outil curl

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Par défaut
    Merci, mais j'utilise curl. Voici mon code pour aller vers Paypal (avant ça, je récupère les datas à envoyer) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    $requete = construit_url_paypal();
    $requete = $requete."&METHOD=SetExpressCheckout".
    			"&CANCELURL=".urlencode("http://domaine/cancel.php").
    			"&RETURNURL=".urlencode("http://domaine/return.php").
    			"&AMT=".$montant_abo.
    			"&CURRENCYCODE=EUR".
    			"&DESC=".urlencode($titre_abo).
    			"&LOCALECODE=FR".
    			"&CUSTOM=".$id_profil.
    			"&HDRIMG=".urlencode("http://domaine/images/logo.png");
     
    $ch = curl_init($requete);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     
    $resultat_paypal = curl_exec($ch);
     
    //echo $requete;
     
    if (!$resultat_paypal)
    	{echo "<p>Erreur</p><p>".curl_error($ch)."</p>";}
    else
    {
    	$liste_param_paypal = recup_param_paypal($resultat_paypal); // Lance notre fonction qui dispatche le résultat obtenu en un array
     
    	// Si la requête a été traitée avec succès
    	if ($liste_param_paypal['ACK'] == 'Success')
    	{
    		// Redirige le visiteur sur le site de PayPal
    		header("Location: https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=".$liste_param_paypal['TOKEN']);
                    exit();
    	}
    	else // En cas d'échec, affiche la première erreur trouvée.
    	{echo "<p>Erreur de communication avec le serveur PayPal.<br />".$liste_param_paypal['L_SHORTMESSAGE0']."<br />".$liste_param_paypal['L_LONGMESSAGE0']."</p>";}		
    }
    curl_close($ch);
    ?>

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    je ne vois pas ce code les directives :
    - USER
    - PWD
    - SIGNATURE

    Sans elles, tu n'auras que le retour ACK=Failure avec pour motif : "Security header is not valid"

    Vérifie bien ton compte paypal, toutes ces informations y sont dedans.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Par défaut
    C'est normal, ils sont dans la fonction "construit_url_paypal" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function construit_url_paypal()
      {
    	$api_paypal = 'https://api-3t.sandbox.paypal.com/nvp?'; // Site de l'API PayPal. On ajoute déjà le ? afin de concaténer directement les paramètres.
    	$version = 85.0; // Version de l'API
     
    	$user = 'paypal-facilitator_api1.XXX'; // Utilisateur API
    	$pass = 'YYYYYY'; // Mot de passe API
    	$signature = 'AA-BB.CCCCCCCCCCCCCCCCCCC'; // Signature de l'API
     
    	$api_paypal = $api_paypal.'VERSION='.$version.'&USER='.$user.'&PWD='.$pass.'&SIGNATURE='.$signature; // Ajoute tous les paramètres
     
    	return 	$api_paypal; // Renvoie la chaîne contenant tous nos paramètres.
      }

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Tu n'as pas bien potassé la doc de Paypal au niveau de la gestion des comptes de tests : un peu de lecture ici.
    A moins que tu ais supprimé un bout de ton code, je pense que : $user = 'paypal-facilitator_api1.XXX' ne doit pas utilisable...

Discussions similaires

  1. [PayPal] Intégration complète en PHP
    Par HALOMOTO dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 24/01/2010, 20h19
  2. paypal dans un freeware ?
    Par gregcat dans le forum Windows
    Réponses: 2
    Dernier message: 12/05/2006, 17h22
  3. Problème avec paypal
    Par Coussati dans le forum Applications
    Réponses: 7
    Dernier message: 04/03/2006, 23h41
  4. Site internet avec dons PAYPAL
    Par LhIaScZkTer dans le forum E-Commerce
    Réponses: 7
    Dernier message: 25/01/2006, 16h25

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