begin process at 2010 02 09 16:10:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Modifier base de donnée après achat via Paypal


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Modifier base de donnée après achat via Paypal

vendredi 4 janvier 2008 à 14:24:42 | Modifier base de donnée après achat via Paypal

bobatheboss

Messieurs dames bonjour,
je vous écrit car j'ai un soucis !

J'ai codé un un petit site de vente d'objets uniques, qui utilise le panier Paypal.
Tout fonctionne très bien, sélection objet, ajout panier, voir le panier, paiement,
mais j'aimerais qu'une fois le paiement accepté par Paypal, l'article ne soit plus mis en vente... car unique.

A savoir :
*les objets sont dans ma base de donnée et ne sont visible sur le catalogue que si la valeur vendu=0
Il me faudrait donc un script php qui modifie la valeur vendu en valeur vendu=1.

*une fois le paiement Paypal accepté, on renvoie automatiquement sur la page paypal_ok.php
qui ressemble à ceci :

<?php
/* Script de notification de paiement par Paypal par mail */
$emailto = "
~~~~~~~~~@orange.fr";
$emailfrom = "
~~~~~~~@gmail.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.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 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);
}
?>

Donc en réalité là ou je bloque, c'est qu'il faudrait récupérer les différents ID des articles acheté et les passer en vendu=1 !

Je remercie d'avance tous ceux d'entre vous qui pourront m'aider à cette tache.

p.s.: Non je ne passerais pas par eBay ni par un CMS d'ecommerce, car le nombre d'article que j'ai à vendre est vraiment limité, et le seul intérêt pour moi d'automatiser ceci, c'est simplement de ne pas avoir deux fois le même article vendu...
De plus et pas des moindres... une fois mon site fini, je publierais les sources complètes ici même... un bon concurrent au CMS pour le petit vendeur !

Grand merci d'avance !
samedi 19 avril 2008 à 01:44:08 | Re : Modifier base de donnée après achat via Paypal

frdestroyers27

Bonjour,
pour ce genre d'opération vous devriez consulter l'information sur le fichier IPN de paypal biensur vous devrez le configurer dans votre compte PayPal.
le IPN est un fichier (dans ce cas ci PHP) qui recevra des result code de transaction ainsi vous permettre de savoir si le client a belle et bien effectuer la transaction. En traitant le 'result code' notament le numéro de produit vous devriez être en mesure de traiter la gestion de votre inventaire en ligne automatiquement!

Bonne Chance

Destroyers27


Cette discussion est classée dans : mail, address, post, body, paypal


Répondre à ce message

Sujets en rapport avec ce message

envoie d'Email :Je dois avoir de la merde dans les yeux [ par Wam0106 ] Voila chez Online.net il me dise qu'il y a une erreure a la ligne 3 mais je ne vois pas ou est le pb si qq'un peu me dire ce qui ne va pas: $headers = Formulaire envoyer par e-mail [ par maxetime ] Salut,j'ai un probleme avec l'envoie d'un formulaire apr e-mail.Voici l'erreur que sa me donne :Parse error: parse error, unexpected T_STRING in c:\in Pb, Formulaire / Mail [ par MaSenCo ] Bonjour,Je viens de mettre un formulaire / mail sur mon site, et j'ai un petit problème avec la fonction mail, c'est à dire que je reçois bien le mail Probleme d'envoie de mail [ par g_tony ] Bonjour je dois faire un petit formulaire d'inscirption qui m'envoie un mail mais je ne comprend pas celui ci ne fonctionne pas pourtant je l'ai deja formmail [ par chris tuckers ] Bonjour bonjour...J'ai fait une requete etj'arrive à envoyer un mail normal.Cependant, j'en ai fait une seconde et lle elle ne marche pas la mechante formulaire php [ par balahe ] Bonjour, je suis nouvelle et je débute dans la création internet.J'ai fais un formulaire de contact :        <table width="81%" bo Newsletter php [ par Travailleuuse06 ] Bonjour,je suis en train de créer une newsletter en php et j'aurais voulu vérifier si un utilisateur est déjà dans ma base de données avant de le supp probleme avec formulaire de contact [ par petsnaz ] bonjour tout le monde,Voila j ai un petit souci dans un formulaire de contact. Je pense que cela est du a une erreur de syntaxe ... mais etant débutan probleme d'envoi de mail [ par chris tuckers ] Bonjour bonjour...J'ai fait une requete etj'arrive à envoyer un mail normal.Cependant, j'en ai fait une seconde et lle elle ne marche pas la mechante recup choix multiple via POST dans mail auto [ par laubro ] Bonjourdans un form jai mis un et en récupérant les infos via un POSTque je me fait envoyer par mail, je ne reçoit que la dernière sélection ! ! y a


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales