Bonjour,

Environnement: XP SP3 / wampserver / Apache2.2.11 / php5.2.9-2 / PHP Version 5.2.9-2

Mon problème est le suivant: Le cryptage d'un bouton se fait sur mon serveur ovh mais pas en local sous wamp.

Code php qui utilise SSL:
Code php : 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
122
123
124
<?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 = "./prvkey.pem";
$MY_KEY_FILE = "./Clef_privee.pem";
 
# chemin vers le certificat public
$MY_CERT_FILE = "./Certificat_public.pem";
 
# chemin vers le certificat public de paypal
//$PAYPAL_CERT_FILE = "./paypal_cert_pem.txt";
$PAYPAL_CERT_FILE = "./paypal_cert_pem.txt";
 
# chemin vers openssl sur votre serveur
//$OPENSSL = "../../../bin/apache/Apache2.2.11/conf/";
//$OPENSSL = './bin/';
//$OPENSSL = '../../../bin/php/php5.2.9-2/extras/openssl';
$OPENSSL = './openssl/bin/';
 
$form = array('cmd' => '_xclick',//indique a paypal qu'il s'agit d'un bouton payer maintenant
		'business' => 'xxx@hotmail.fr',//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
		'tax' => '0.00', //taxes
		'amount' => '10', //montant a payer
		'lc' => 'FR', //langue de l'interface paypal
		'bn' => 'PP-BuyNowBF', 
    'cert_id' => 'E55S8YH7ZTV5x', //identifiant de certificat donné par paypal
    'custom' => '',//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://images.paypal.com/images/x-click-but01.gif',//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' => 'http://localhost/mydir/user/',//Adresse de retour lorsque l'utilisateur clique sur retouner a la boutique
		'cancel_return' => 'http://localhost/mydir/user/',//Adresse de retour pour les annulations
		'no_note' => '1',//Empeche l'utilisateur de rajouter des commentaires a son paiement.
		'notify_url' => 'http://localhost/mydir/user/ipn.php'//Url appelee par paypal lors du paiement, cette page permettra le traitement des commandes payees.
	);
 
//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\n";
	}
	if (!file_exists($MY_CERT_FILE)) {
		echo "ERROR: MY_CERT_FILE $MY_CERT_FILE not found\n";
	}
	if (!file_exists($PAYPAL_CERT_FILE)) {
		echo "ERROR: PAYPAL_CERT_FILE $PAYPAL_CERT_FILE not found\n";
	}
	if (!file_exists($OPENSSL)) {
		echo "ERROR: OPENSSL $OPENSSL not found\n";
	}
 
	//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";
};
 
	//on enregistre le formulaire crypte dans une variable
	$encrypted = paypal_encrypt($form);
 
?> 
<!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>
      <form target="paypal" action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="post">
      <input type="hidden" name="cmd" value="_s-xclick">
      <input type="hidden" name="encrypted" value="<?php echo $encrypted; ?>">
      <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>

Résultat source en local:
Code html : 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
 
<!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>
      <form target="paypal" action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="post">
 
      <input type="hidden" name="cmd" value="_s-xclick">
      <input type="hidden" name="encrypted" value="">
      <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>

Sur ovh:
Code html : 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
 
<!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>
      <form target="paypal" action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="post">
 
      <input type="hidden" name="cmd" value="_s-xclick">
      <input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----
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
eeB80DaIgaP7T11+9eTWFGMKEwMnW95YaA==
-----END PKCS7-----
">
      <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>

_______________________
Configuration de apache: le mod_ssl est activé et openssl est bien installé.

Il me détecte bien openssl mais ne veut en aucun cas faire le cryptage.

Quelqu'un pourrait t'il m'éclairer s'il vous plait?