Accueil > Forum > > > > Modifier base de donnée après achat via Paypal
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=0Il 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
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice CRéATION D'UNE BASE DE DONNéE SOUS SQL AZURECRéATION D'UNE BASE DE DONNéE SOUS SQL AZURE par junarnoalg
Sans rentrer dans les détails, je me propose ici de faire un rapide tour de ce que propose SQL Azure.
SQL Azure est avant tout un service d'hébergement de base de données relationnelles construit sur SQL Server. Il permet aux entreprises d...
Cliquez pour lire la suite de l'article par junarnoalg TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|