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 :

Intégration bouton Paypal


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 74
    Points
    74
    Par défaut Intégration bouton Paypal
    Bonjour,
    je voudrais intégrer un bouton acheter Paypal à mon panier que j'ai déjà réaliser !

    Pour cela j'ai trouvé le code suivant ici.
    J'ai modifié mes quelques données pour arrivé a ceci :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    <?php
    #Scrypt traduit et modifie par maniT4c
    #Retrouvez le scrypt d'origine sur http://www.stellarwebsolutions.com/en/articles/paypal_button_encryption_php.php
     
    #Defini le chemin de la racine pour OpenSSL
    putenv("HOME=~");
     
    # chemin vers la clef privee
    $MY_KEY_FILE = "paypal/*-prvkey.pem";
     
    # chemin vers le certificat public
    $MY_CERT_FILE = "paypal/*-pubcert.pem"; 
     
    # chemin vers le certificat public de paypal
    $PAYPAL_CERT_FILE = "paypal/cert_key_pem.txt";
     
    # chemin vers openssl sur votre serveur
    # pensez a verifier que openssl est active sur votre serveur avec la commande phpinfo()
    $OPENSSL = "/usr/bin/openssl";
     
    $form = array('cmd' => '_xclick',//indique a paypal qu'il s'agit d'un bouton payer maintenant
    		'business' => 'vendeur@domaine.com',//adresse du vendeur (qui doit recevoir le paiement)
    		'item_name' => '5 kilo de mandarine',  //nom de la commande
    		'item_number' => '1', //numero de la commande
    		'currency_code' => 'EUR', //Devise
    		'amount' => '10', //montant a payer
    		'lc' => 'FR', //langue de l'interface paypal
            'cert_id' => 'xxxxxxxxxxxx', //identifiant de certificat donné par paypal
            'custom' => 'mes valeurs utiles pour le traitement',//variable permettant de recevoir diverses informations sur la page de retour
            'invoice' => '1',//valeur unique empechant les paiements accidentels (doit être differente pour chaque paiement)
            'charset' => 'utf-8',//Definit le charset utilisez
            'no_shipping' => '1', //Le client n'est pas invite a rentrer son adresse
            'cpp_header_image' => 'http://www.domaine.com/logo.jpg',//Adresse de l'image se trouvant en haut de la page de paiement (750x90px maxi) dans l'ideal cette image soit se trouver sur un serveur securisé pour eviter d'avoir un message indiquant que certaine parti de la page ne sont pas écurisée.
    		'return' => 'boutique.php',//Adresse de retour lorsque l'utilisateur clique sur retouner a la boutique
    		'cancel_return' => 'annule.php',//Adresse de retour pour les annulations
    		'no_note' => '1',//Empeche l'utilisateur de rajouter des commentaires a son paiement.
    		'notify_url' => 'réussi.php'//Url appelee par paypal lors du paiement, cette page permettra le traitement des commandes payees.
    	);
    	//on enregistre le formulaire crypte dans une variable
    	$encrypted = paypal_encrypt($form);
     
    //Cette fonction encrypte le formulaire il n'est pas necessaire de comprendre son fonctionnement
    function paypal_encrypt($hash){
     
    	global $MY_KEY_FILE;
    	global $MY_CERT_FILE;
    	global $PAYPAL_CERT_FILE;
    	global $OPENSSL;
     
    	if (!file_exists($MY_KEY_FILE)) {
    		echo "ERROR: MY_KEY_FILE $MY_KEY_FILE not found <br/>";
     
    	}
    	if (!file_exists($MY_CERT_FILE)) {
    		echo "ERROR: MY_CERT_FILE $MY_CERT_FILE not found<br/>";
    	}
    	if (!file_exists($PAYPAL_CERT_FILE)) {
    		echo "ERROR: PAYPAL_CERT_FILE $PAYPAL_CERT_FILE not found<br/>";
    	}
    	if (!file_exists($OPENSSL)) {
    		echo "ERROR: OPENSSL $OPENSSL not found<br/>";
    	}
     
    	//Assign Build Notation for PayPal Support
    	$hash['bn']= 'StellarWebSolutions.PHP_EWP';
     
    	$openssl_cmd = "$OPENSSL smime -sign -signer $MY_CERT_FILE -inkey $MY_KEY_FILE " .
                    "-outform der -nodetach -binary | $OPENSSL smime -encrypt " .
                    "-des3 -binary -outform pem $PAYPAL_CERT_FILE";
     
    	$descriptors = array(
            	0 => array("pipe", "r"),
    		1 => array("pipe", "w"),
    	);
     
    	$process = proc_open($openssl_cmd, $descriptors, $pipes);
     
    	if (is_resource($process)) {
    		foreach ($hash as $key => $value) {
    			if ($value != "") {
    				//echo "Adding to blob: $key=$value\n<br />";
    				fwrite($pipes[0], "$key=$value\n");
    			}
    		}
    		fflush($pipes[0]);
            	fclose($pipes[0]);
     
    		$output = "";
    		while (!feof($pipes[1])) {
    			$output .= fgets($pipes[1]);
    		}
    		//echo "outpout=".$output;
    		fclose($pipes[1]); 
    		$return_value = proc_close($process);
    		return $output;
    	}
    	return "ERROR";
    };
    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
      <title>Paiement Paypal</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <meta http-equiv="Content-Language" content="fr" />
    </head>
    <body>
    <!-- l'attribut action du formulaire doit rediriger vers www.sandbox.paypal.com pour la phase de test et vers www.paypal.com pour le réel -->
    <form target="paypal" action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_s-xclick">
    <!-- on affiche le formulaire crypté -->
    <input type="hidden" name="encrypted" value="
    <?php echo $encrypted; ?>">
    <!-- Indique la source de l'image du bouton payer maintenant -->
    <input type="image" src="http://images.paypal.com/images/x-click-but01.gif"
    name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite
    et sécurisée">
    </form>
    </body>
    </html>
    Néanmoins, lors de ma phase de test, il me dit :
    Détection d'erreur : "Nous ne sommes pas parvenus à décrypter l'ID de certificat."
    J'ai refait l'opération en prenant un nouvel ID de certificat et toujours la même chose.

    Si quelqu'un sait d'ou sa vient, je suis preneur, car je n'ai rien trouvé pouvant m'aider à sortir de cette impasse.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 74
    Points
    74
    Par défaut
    Bon j'ai finalement trouvé !

    Cela n'a rien à voir avec le code mais avec Paypal où il faut que l'état du compte soit Vérifié(etat : non-vérifié, ben sa marche pas) !!

    Comment perdre 2jours à chercher une merde pareille.

    Merci à ceux qui ont passé du temps sur ce "problème".

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

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, 21h19
  2. [PayPal] Chiffrer bouton Paypal
    Par php_de_travers dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 03/10/2008, 17h01
  3. Intégration d'un bouton Paypal.
    Par zooffy dans le forum ASP.NET
    Réponses: 25
    Dernier message: 21/05/2008, 12h47
  4. [WB9] Utilisation bouton Paypal
    Par Lasafa dans le forum WebDev
    Réponses: 9
    Dernier message: 31/01/2008, 00h37
  5. [PayPal] Bouton acheter maintenant
    Par HwRZxLc4 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/12/2007, 01h00

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