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
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
CHAMPS TIMECHAMPS TIME par vargas
Cliquez pour lire la suite par vargas
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|