Bonjour,
Je voudrai que l'utilisateur entre son adresse mail, et clique sur un bouton paypal crypté pour qu'ensuite il reçoive un code secret sur son mail si le montant est bon.
Je voudrai mettre l'adresse mail dans la variable custom, le souci c'est que je n'arrive pas à récupérer l'adresse mail qu'il saisi.
voici toute la page php:
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>titre</title>
Entrez ici le mail sur lequel vous désirez reçevoir votre code:<br>
<br>
<form method="get">
<input name="emailsaisi" type="text">
</form>
<br>
<br>
<?php
session_start();
$situation_de_test = "OUI"; // OUI ou NON qui défini Paypal ou PayPal SandBox
$id_acheteur = $_SESSION['espace_membre']; // Identifiant du client ou du
membre
$montant = "11"; // Montant de l'objet ou de l'abonnement
$monaie = "EUR"; // Devise
$nom_produit ="Nom du produit"; // Nom du Produit
$avis = "0"; // 0 ou 1 -> Demander l'avis des clients
$descrip_produit = ""; // Description du produit
$ref_produit = "1"; // Référence du produit
$langue = "FR"; // Langue -> FR, US ou autre
$page_paiement_accepte = "http://www.*****/apres_paiement.html"; // Si le paiement s'est bien
déroulé
$page_paiement_annule = "http://www.*****"; // Si le paiement à été annulé
$cac_a = "vendeu_*****[email protected]"; // Adresse e-mail du
compte vendeur PayPal SandBox
$cac_b = "postmaster@*****"; // Adresse e-mail du compte vendeur
PayPal
$type_de_bouton = "1";
putenv("HOME=~");
$MY_KEY_FILE = "***key.pem";
$MY_CERT_FILE = "***cert.pem";
$PAYPAL_CERT_FILE = "***cert.pem";
$OPENSSL = "/usr/bin/openssl";
$cert_id = "123456789";
if($situation_de_test == "OUI")
{
$paypaltype = '<form action="https://www.sandbox.paypal.com/cgi-bin/webscr"
method="post">';
$cac = $cac_a;
}
else
{
$paypaltype = '<form action="https://www.paypal.com/cgi-bin/webscr"
method="post">';
$cac = $cac_b;
}
$frais_de_port = "0.00"; // 0.00 -> Frais de livraison
$taxe = "0.00"; // 0.00 -> Pas de taxe
$u_quantity = "0"; // 1 -> Permet aux clients de choisir la quantité d'objet
$poids = "0"; // Poids de l'objet en Kg
$poids_units = "kgs"; // Unité du poids kgs ou lbs
$address_override = "0"; // 1 -> Ne pas laisser le vendeur définir l'adresse
$address1 = "rue des prés"; // 1ère Rue du client
$address2 = ""; // 2ème Rue du client
$city = ""; // Ville du client
$first_name = ""; // Prénom du client
$last_name = ""; // Nom du client
$bouton = "_xclick";
$form_1 = array('cmd' => $bouton,
'business' => $cac,
'cert_id' => $cert_id,
'item_name' => $nom_produit,
'amount' => $montant,
'weight' => $poids,
'weight_unit' => $poids_units,
'undefined_quantity' => $u_quantity,
'shipping' => $frais_de_port,
'no_shipping' => $activation_frais_de_port,
'return' => $page_paiement_accepte,
'cancel_return' => $page_paiement_annule,
'no_note' => $avis,
'item_number' => $ref_produit,
// 'custom' =>
$id_acheteur.'-*-'.$descrip_produit.'-*-'.$date_us.'-*-'.$date_fr.'-*-'.$heure.'-*-'.$montant,
'currency_code' => $monaie,
'tax' => $taxe,
'address_override' => $address_override,
'address1' => $address1,
'address2' => $address2,
'city' => $city,
'email' => "",
'custom' => $emailsaisi, //<<<<<<<############## LE PROBLEME EST ICI IL NE RECUPERE RIEN
);
if($frais_de_port == "0.00")
{
$activation_frais_de_port = "0";
}
$date_us = date("Y-m-d");
$date_fr = date("d-m-Y");
$heure = date("H:i:s");
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";
}
$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 != "")
{
fwrite($pipes[0], "$key=$value\n");
}
}
fflush($pipes[0]);
fclose($pipes[0]);
$output = "";
while (!feof($pipes[1]))
{
$output .= fgets($pipes[1]);
}
fclose($pipes[1]);
$return_value = proc_close($process);
return $output;
}
return "ERROR";
};
$encrypted = paypal_encrypt($form_1);
echo''.$paypaltype.'
<input type="hidden" name="cmd" value="_s-xclick">
<input name="encrypted" type="hidden" value="'.$encrypted.'" />
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_paynow_SM.gif"
name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite
et sécurisée">
</form>
';
?>
</body></html>
Je pourrait biensûr récupérer l'email de l'acheteur directement mais c'est mieux qu'il puisse choisir lui même sur quel mail il veut recevoir le code secret qu'il a payé.
Je vous remercie par avance, toute aide est la bienvenue.
Bonjour,
Je voudrai que l'utilisateur entre son adresse mail, et clique sur un bouton paypal crypté pour qu'ensuite il reçoive un code secret sur son mail si le montant est bon.
Je voudrai mettre l'adresse mail dans la variable custom, le souci c'est que je n'arrive pas à récupérer l'adresse mail qu'il saisi.
voici toute la page php:
[code]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>titre</title>
Entrez ici le mail sur lequel vous désirez reçevoir votre code:<br>
<br>
<form method="get">
<input name="emailsaisi" type="text">
</form>
<br>
<br>
<?php
session_start();
$situation_de_test = "OUI"; // OUI ou NON qui défini Paypal ou PayPal SandBox
$id_acheteur = $_SESSION['espace_membre']; // Identifiant du client ou du
membre
$montant = "11"; // Montant de l'objet ou de l'abonnement
$monaie = "EUR"; // Devise
$nom_produit ="Nom du produit"; // Nom du Produit
$avis = "0"; // 0 ou 1 -> Demander l'avis des clients
$descrip_produit = ""; // Description du produit
$ref_produit = "1"; // Référence du produit
$langue = "FR"; // Langue -> FR, US ou autre
$page_paiement_accepte = "http://www.*****/apres_paiement.html"; // Si le paiement s'est bien
déroulé
$page_paiement_annule = "http://www.*****"; // Si le paiement à été annulé
$cac_a = "vendeu_*****
[email protected]"; // Adresse e-mail du
compte vendeur PayPal SandBox
$cac_b = "postmaster@*****"; // Adresse e-mail du compte vendeur
PayPal
$type_de_bouton = "1";
putenv("HOME=~");
$MY_KEY_FILE = "***key.pem";
$MY_CERT_FILE = "***cert.pem";
$PAYPAL_CERT_FILE = "***cert.pem";
$OPENSSL = "/usr/bin/openssl";
$cert_id = "123456789";
if($situation_de_test == "OUI")
{
$paypaltype = '<form action="https://www.sandbox.paypal.com/cgi-bin/webscr"
method="post">';
$cac = $cac_a;
}
else
{
$paypaltype = '<form action="https://www.paypal.com/cgi-bin/webscr"
method="post">';
$cac = $cac_b;
}
$frais_de_port = "0.00"; // 0.00 -> Frais de livraison
$taxe = "0.00"; // 0.00 -> Pas de taxe
$u_quantity = "0"; // 1 -> Permet aux clients de choisir la quantité d'objet
$poids = "0"; // Poids de l'objet en Kg
$poids_units = "kgs"; // Unité du poids kgs ou lbs
$address_override = "0"; // 1 -> Ne pas laisser le vendeur définir l'adresse
$address1 = "rue des prés"; // 1ère Rue du client
$address2 = ""; // 2ème Rue du client
$city = ""; // Ville du client
$first_name = ""; // Prénom du client
$last_name = ""; // Nom du client
$bouton = "_xclick";
$form_1 = array('cmd' => $bouton,
'business' => $cac,
'cert_id' => $cert_id,
'item_name' => $nom_produit,
'amount' => $montant,
'weight' => $poids,
'weight_unit' => $poids_units,
'undefined_quantity' => $u_quantity,
'shipping' => $frais_de_port,
'no_shipping' => $activation_frais_de_port,
'return' => $page_paiement_accepte,
'cancel_return' => $page_paiement_annule,
'no_note' => $avis,
'item_number' => $ref_produit,
// 'custom' =>
$id_acheteur.'-*-'.$descrip_produit.'-*-'.$date_us.'-*-'.$date_fr.'-*-'.$heure.'-*-'.$montant,
'currency_code' => $monaie,
'tax' => $taxe,
'address_override' => $address_override,
'address1' => $address1,
'address2' => $address2,
'city' => $city,
'email' => "",
'custom' => $emailsaisi, //<<<<<<<############## LE PROBLEME EST ICI IL NE RECUPERE RIEN
);
if($frais_de_port == "0.00")
{
$activation_frais_de_port = "0";
}
$date_us = date("Y-m-d");
$date_fr = date("d-m-Y");
$heure = date("H:i:s");
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";
}
$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 != "")
{
fwrite($pipes[0], "$key=$value\n");
}
}
fflush($pipes[0]);
fclose($pipes[0]);
$output = "";
while (!feof($pipes[1]))
{
$output .= fgets($pipes[1]);
}
fclose($pipes[1]);
$return_value = proc_close($process);
return $output;
}
return "ERROR";
};
$encrypted = paypal_encrypt($form_1);
echo''.$paypaltype.'
<input type="hidden" name="cmd" value="_s-xclick">
<input name="encrypted" type="hidden" value="'.$encrypted.'" />
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_paynow_SM.gif"
name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite
et sécurisée">
</form>
';
?>
</body></html>[/code]
Je pourrait biensûr récupérer l'email de l'acheteur directement mais c'est mieux qu'il puisse choisir lui même sur quel mail il veut recevoir le code secret qu'il a payé.
Je vous remercie par avance, toute aide est la bienvenue.