Bonjour,
Je voudrais envoyer automatiquement un fichier suite à un paiement Paypal .
Je trouve quand même la doc par très explicite.
Bon j'ai fini par trouver comment envoyer un mail de notification suite au paiement.
J'ai renseigné le notify_url dans le formulaire de cette façon:
ensuite dans le fichier notification.php j'ai :
Je voudrais donc mettre le code pour envoyer le fichier en téléchargement à l'endroit ou j'ai mis ENVOI DU FICHIER en utilisant readfile . Mais il faudrait que je change le header qui a été déjà défini.
Je coince un peu la . Ou alors ce n'est pas comme ça que je dois procéder ?
Quelqu'un sait comment faire ?
Merci
Je voudrais envoyer automatiquement un fichier suite à un paiement Paypal .
Je trouve quand même la doc par très explicite.
Bon j'ai fini par trouver comment envoyer un mail de notification suite au paiement.
J'ai renseigné le notify_url dans le formulaire de cette façon:
Code:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="essai@yahoo.com">
<input name="custom" type="hidden" value="numerodeclient" />
<input type="hidden" name="item_name" value="document">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="amount" value="0">
<input type="hidden" name="notify_url" value="notification.php">
<input type="image" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynowCC_LG.gif" name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée">
</form>
ensuite dans le fichier notification.php j'ai :
Code:
/* Script de notification de paiement par Paypal par mail */
$emailto = "destinataire@destinataire.com";
$emailfrom = "essai@essai.com";
$sujetprefix = "[PAYPAL]";
// lecture du post de PayPal et ajout de 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = trim(urlencode(stripslashes($value)));
$req .= "&$key=$value";
}
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: www.paypal.com:80\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$payment_date = $_POST['payment_date'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
$num_cart_items = $_POST['num_cart_items'];
$quantity = $_POST['quantity'];
$mc_fee = $_POST['mc_fee'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$address_street = $_POST['address_street'];
$address_zip = $_POST['address_zip'];
$address_city = $_POST['address_city'];
$address_state = $_POST['address_state'];
$address_country = $_POST['address_country'];
$address_country_code = $_POST['address_country_code'];
$payer_business_name = $_POST['payer_business_name'];
$payer_status = $_POST['payer_status'];
$memo = $_POST['memo'];
$invoice = $_POST['invoice'];
if (!$fp) {
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// *******ENVOI FICHIER ****************************
ENVOI DU FICHIER
// FIN ENVOI FICHIER *********************************
// Envoi du mail
$mail_From = "From: " . $emailfrom;
$mail_To = $emailto;
$mail_Subject = $sujetprefix . " Paiement PAYPAL valide et verifie";
$mail_Body = "Paypal vient de valider et recevoir un paiement par carte bancaire.";
$mail_Body .= "\n\n====================================================";
$mail_Body .= "\nVoici quelques informations sur la transaction:\n";
$mail_Body .= "\n" . "Transaction ID: " . $txn_id ;
$mail_Body .= "\n" . "Date de paiement: " . $payment_date;
$mail_Body .= "\n" . "Etat du paiement: " . $payment_status;
$mail_Body .= "\n====================================================";
$mail_Body .= "\n\n" . "Les informations ci-dessous peuvent etre incompletes. \nAllez sur votre compte Paypal pour verifier qu'il ne manque pas une ligne de l'adresse ou un objet en commande.";
$mail_Body .= "\n\n====================================================";
$mail_Body .= "\n" . "Nombre d'objets dans le panier: " . $num_cart_items;
$mail_Body .= "\n" . "Objet en commande: " . $item_name;
$mail_Body .= "\n" . "Numero de l'objet: " . $item_number;
$mail_Body .= "\n" . "Quantite: " . $quantity;
$mail_Body .= "\n\n" . "Montant: " . $payment_amount . " " .$payment_currency;
$mail_Body .= "\n" . "Frais Paypal: " . $mc_fee;
$mail_Body .= "\n" . "Facture numero: " . $invoice;
$mail_Body .= "\n\n" . "Nom: " . $first_name . " " .$last_name;
$mail_Body .= "\n" . "Rue: " . $address_street;
$mail_Body .= "\n" . "Code postal: " . $address_zip;
$mail_Body .= "\n" . "Ville: " . $address_city;
$mail_Body .= "\n" . "Etat et Pays: " . $address_state . " " .$address_country . " " .$address_country_code;
$mail_Body .= "\n" . "Adresse e-mail: " . $payer_email;
$mail_Body .= "\n" . "Nom de l'entreprise: " . $payer_business_name;
$mail_Body .= "\n\n" . "Message du client: " . $memo;
$mail_Body .= "\n\n" . "Statut Paypal du client: " . $payer_status;
$mail_Body .= "\n====================================================";
foreach ($_POST as $key => $value){
$emailtext .= $key . " = " .$value ."\n";
}
mail($mail_To, $mail_Subject, $mail_Body . "\n\nVoici les donnees brutes recues par Paypal: \n\n" . $emailtext, $mail_From);
}
else if (strcmp ($res, "INVALID") == 0) {
// Envoi d'un mail si invalide
$mail_From = "From: " . $emailfrom;
$mail_To = $emailto;
$mail_Subject = $sujetprefix . " Paiement PAYPAL NON VALIDE";
$mail_Body = "Un client a voulu payer par Paypal mais la transaction n'est pas valide. La commande est annulee. \nCe message est envoye pour information, il n'y a rien a faire. \nhttps://www.paypal.com/fr/ \nCi-dessous, les donnees brutes envoyees par Paypal.";
$mail_Body .= "\n\n====================================================";
$mail_Body .= "\n\n" . "Nombre d'objets dans le panier: " . $num_cart_items;
$mail_Body .= "\n" . "Objet en commande: " . $item_name;
$mail_Body .= "\n" . "Numero de l'objet: " . $item_number;
$mail_Body .= "\n" . "Quantite: " . $quantity;
$mail_Body .= "\n\n" . "Montant: " . $payment_amount . " " .$payment_currency;
$mail_Body .= "\n" . "Frais Paypal: " . $mc_fee;
$mail_Body .= "\n" . "Facture numero: " . $invoice;
$mail_Body .= "\n\n" . "Nom: " . $first_name . " " .$last_name;
$mail_Body .= "\n" . "Rue: " . $address_street;
$mail_Body .= "\n" . "Code postal: " . $address_zip;
$mail_Body .= "\n" . "Ville: " . $address_city;
$mail_Body .= "\n" . "Etat et Pays: " . $address_state . " " .$address_country . " " .$address_country_code;
$mail_Body .= "\n" . "Adresse e-mail: " . $payer_email;
$mail_Body .= "\n" . "Nom de l'entreprise: " . $payer_business_name;
$mail_Body .= "\n\n" . "Message du client: " . $memo;
$mail_Body .= "\n\n" . "Statut Paypal du client: " . $payer_status;
$mail_Body .= "\n====================================================";
foreach ($_POST as $key => $value){
$emailtext .= $key . " = " .$value ."\n";
}
mail($mail_To, $mail_Subject, $mail_Body . "\n\nVoici les donnees brutes recues par Paypal: \n\n" . $emailtext, $mail_From);
}
}
fclose ($fp);
}
Je voudrais donc mettre le code pour envoyer le fichier en téléchargement à l'endroit ou j'ai mis ENVOI DU FICHIER en utilisant readfile . Mais il faudrait que je change le header qui a été déjà défini.
Je coince un peu la . Ou alors ce n'est pas comme ça que je dois procéder ?
Quelqu'un sait comment faire ?
Merci