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
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATIONSQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION par christian
Cette fonctionnalité à vue le jour dans Ado.Net 2.0 et s'appuie sur SQL Server 2005 (et plus) même si elle fonctionne avec SQL Server 2000. Le principe de fonctionnement côté applicatif est assez simple, on fournit une requête et lorsque le résultat d...
Cliquez pour lire la suite de l'article par christian [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|