Bonjour à tous,
Paypal dans son interface d’administration ne permet de crypter qu’un bouton à la fois, ce qui n’est pas très pratique quand on à 500 articles à vendre par exemple.
Nous allons donc voir comment crypter dynamiquement tout les boutons paypal buy now d’une page .
- Il faut bien entendu dans la page ou va apparaitre l’article à vendre inclure le script qui va crypter nos boutons.
-
require_once("../paypal/crypt.php"); // représente le chemin du script
- Créer un certificat en cliquant ici et récupérer la Private Key (renommée my-prvkey.pem et le Public certificate my-pubcert.pem
- Allez dans l’administration de votre compte Paypal cliquez sur préférence puis sur certificats pour site marchand cliquez sur télécharger et récupérez paypal_cert_pem.txt et renommez le en paypal_cert.pem.
- Toujours dans la page certificats pour site marchand, cliquez sur Ajouter et sélectionnez votre certificat public généré à l’étape 2. Il vous attribue un numéro de certificat à conserver précieusement et à utiliser dans la variable ‘cert_id’ de l’étape suivante :
- passons maintenant au contenu de crypt.php
-
//Sample PayPal Button Encryption: Copyright 2006,2007 StellarWebSolutions.com
-
//Not for resale – license agreement at
-
//http://www.stellarwebsolutions.com/en/eula.php
-
//Updated: 2007 04 04
-
-
#Set home directory for OpenSSL
-
"HOME=~");
-
-
# private key file to use
-
"/var/www/vhosts/votresite.com/httpdocs/paypal/my-prvkey.pem";
-
-
# public certificate file to use
-
"/var/www/vhosts/votresite.com/httpdocs/paypal/my-pubcert.pem";
-
-
# Paypal’s public certificate
-
"/var/www/vhosts/votresite.com/httpdocs/paypal/paypal_cert.pem";
-
-
# path to the openssl binary
-
$OPENSSL = "/usr/bin/openssl"//Sample PayPal Button Encryption: Copyright 2006,2007 StellarWebSolutions.com
-
//Not for resale – license agreement at
-
//http://www.stellarwebsolutions.com/en/eula.php
-
"ERROR: MY_KEY_FILE $MY_KEY_FILE not found\n""ERROR: MY_CERT_FILE $MY_CERT_FILE not found\n""ERROR: PAYPAL_CERT_FILE $PAYPAL_CERT_FILE not found\n""ERROR: OPENSSL $OPENSSL not found\n";
-
}
-
-
//Assign Build Notation for PayPal Support
-
‘bn’]= ‘StellarWebSolutions.PHP_EWP’"$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""pipe", "r""pipe", "w""") {
-
//echo "Adding to blob: $key=$value\n";
-
"$key=$value\n"""//echo $output;
-
"ERROR"// choississez les variables à transmettre à la fonction (prix, nom de l’objet, etc)
-
‘cmd’ => ‘_xclick’, //bouton paypal achat immédiat
-
‘business’ => ‘votreadresse@monsite.com’, // adresse de votre compte paypal
-
‘cert_id’ => ‘WWEEDZREXSSS’, // ici mettre le numéro de certificat obtenu dans l’interface d’administration paypal
-
‘item_name’ => $title, //titre de l’objet vendu
-
‘amount’// cout de l’objet
-
‘shipping’ => ‘0.00’, //frais de port
-
‘no_shipping’ => ‘0’,
-
‘return’ => ‘http://www.monsite.com/user/?action=user.credits&fin=ok’, // adresse de retour après le paiement
-
‘notify_url’ => ‘http://www.monsite.com/paypal/paypal.php’, // adresse de notification ipn (voir autre tuto sur le site)
-
‘cancel_return’ => ‘http://www.monsite.com/user/?action=user.credits’, // adresse de retour en cas d’annulation du paiement
-
‘no_note’ => ‘1’,
-
‘custom’ => $iduser."/credits/".$title."/""Y-m-d H:i:s"), // la variable custom permet de faire passer n’importe quel parametre de votre choix
-
‘tax’ => ‘0.00’,
-
‘lc’ => ‘US’
- Retournons à la page où nous affichons l’article. Il ne reste plus qu’a crypter nos boutons à la demande
-
span class=”st0″>"https://www.paypal.com/cgi-bin/webscr" method="post">
-
<input name="cmd" type="hidden" value="_s-xclick" />
-
<input name="encrypted" type="hidden" value="<? $bouton=paypal_button($vosvariable1,$vosvariable2,$vosvariable3); echo $bouton; ?>""button68" type="submit" value="Buy"
Riens ne vous empêche d’intégrer cela à un for each ou while pour générer x boutons selon vos conditions
Ce tuto est terminé n’hésitez pas à poster un commentaire et si il vous à bien aidé à faire un don :
Si vous désirez que notre entreprise l’installe sur votre site Contactez nous
En local sur windows, l’executable openssl.exe est trouvé, mais je n’ai pas de résultat d’encryption.
Y a-t-il une astuce ?
Bonjour, le tuto est sympas et je connaissais
déjà en anglais…En français c’est mieux.
Sur un de mes sites, j’ai placé un bout de code
de trois ligne qui permet de faire un rotation
dans l’item : business.
Donc je ne peux pas crypter mon bouton sous
peine de faire foirer le script.
Y aurait-il une solution avec ce tuto pour appliquer
cette rotation dans le crypt.php ?
Je ne suis pas sur car Clé unique paypal.
donc me voilà un peu coincé
Si vous trouvez ma solution
Merci
Jérémy
Bonjour
comment savoir le répértoire dont openssl est installé ?
j’ai un site hébérgé sur un serveur.
pouvez vous svp m’expliquez ce ligne de code
#Set home directory for OpenSSL
putenv(“HOME=~”);
Bonne journée
Bonjour,
J’ai un soucis d’encryptage, j’essaie d’adapter ce tuto (très utile d’ailleurs) à un panier donc sur un bouton
‘cmd’=>’_cart’ et
‘upload’ =>’1′
Mais il me met des erreurs du genre panier vide ou erreur sur le panier ?
J’y comprend rien, toutes les données sont bonne
Si quelqu’un à la solution
Merci pour ce tuto clair
Dede
Bonjour,
Tout d’abord merci pour le tuto mais j’ai une question j’ai rencontré l’erreur suivante lors de mes tests :
“L’adresse email de l’entreprise ne figure pas dans le grand objet binaire crypté. Veuillez contacter votre vendeur.”
Vous auriez une idée sur la cause dudit problème ?
Cordialement,
[…] Filed under: paypal by emile le tuto a été déplacé ici : Cryptage dynamique en php des boutons Paypal […]
J’ai un probleme dans la mise en oeuvre de ce tuto.
J’ai le message suivant à chaque envoi du bouton crypté.
“L’adresse email de l’entreprise ne figure pas dans le grand objet binaire crypté. Veuillez contacter votre vendeur.”
Je ne vois pas ce qui bloque.
Bonjour , je vous remerci infiniment pour ce précieux tuto cependant je me bloque au nibveau d’un message ” Nous ne sommes pas parvenus à décrypter l’ID de certificat.” , sachant que j’ai tout v&érifié , l’adresse paypal du buyer et l’id généré par paypal tout est ok mais je n’arrive pas à m’ensortir qaund je teste j’ai toujours cette erreur qui apparait , alors je me demande et après tout ce temps coulé y a t il pas qq d’entre vous qui a trouvé la solution pour ce genre de problèmes ??