IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

conseils insertion BDD avant paiement paypal


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut conseils insertion BDD avant paiement paypal
    Bonjour je me suis aider de cette page:
    <lien>https://www.paypaltech.com/SG2/scriptparse.php</lien>

    pour faire ma page ipn avec email

    mais comme apres une semaine je ne comprend toujours pk je ne recoit aucun POST sur ma page.

    Pour securite on m'avait conseiler d enregistrer la commande apres validation du paiement chez paypal sur ma page IPN, mais comme je peux pas faire autrement.

    Comment pourrai je securiser au mieux le traitement.

    1) confirmer la commande insertion commande dans ma BDD.
    2)redirection sur paypal avec paiment.
    3) redirection dur mon site avec reponse de confirmation de commande.

    Je voudrai securiser ces etapes au mieux auriez vosu des conseils?

    MON CODE QUI FONCTIONNE PAS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <form action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="POST">
     
    <img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
    <input type="hidden" name="upload" value="1">
    <input type="hidden" name="cmd" value="_cart">
    <input type="hidden" name="business" value="my.bab_1324302424_biz@gmail.com">
    <input type="hidden" name="item_name_1" value="mon objet">
    <input type="hidden" name="item_number_1" value="6">
    <input type="hidden" name="custom" value="22">
    <input type="hidden" name="amount_1" value="15.00">
    <input type="hidden" name="no_shipping" value="0">
    <input name="return" type="text" value="http://www.webcreation66.com/mybabylove/test3.php" />
    <input name="cancel_return" type="text" value="http://www.webcreation66.com/mybabylove/test3.php" />
    <input name="notify_url" type="text" value="http://www.webcreation66.com/mybabylove/test3.php" />
    <input type="hidden" name="no_note" value="1">
    <input type="hidden" name="currency_code" value="EUR">
    <input type="hidden" name="lc" value="FR">
     
    <input type="image" src=" <lien url="https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif">https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif</lien>
    border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
    </form>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    <?php
    // Revision Notes
    // 11/04/11 - changed post back url from <lien>https://www.paypal.com/cgi-bin/webscr</lien> to <lien>https://ipnpb.paypal.com/cgi-bin/webscr</lien>
    // For more info see below:
    // <lien url="https://www.x.com/content/bulletin-ip-address-expansion-paypal-services">https://www.x.com/content/bulletin-ip-address-expansion-paypal-services</lien>
    // "ACTION REQUIRED: if you are using IPN (Instant Payment Notification) for Order Management and your IPN listener script is behind a firewall that uses ACL (Access Control List) rules which restrict outbound traffic to a limited number of IP addresses, then you may need to do one of the following: 
    // To continue posting back to <lien>https://www.paypal.com</lien>  to perform IPN validation you will need to update your firewall ACL to allow outbound access to *any* IP address for the servers that host your IPN script
    // OR Alternatively, you will need to modify  your IPN script to post back IPNs to the newly created URL <lien>https://ipnpb.paypal.com</lien> using HTTPS (port 443) and update firewall ACL rules to allow outbound access to the ipnpb.paypal.com IP ranges (see end of message)."
     
     
    // read the post from PayPal system and add 'cmd'
    $req = 'cmd=_notify-validate';
     
    foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $req .= "&$key=$value";
    }
     
    // post back to PayPal system to validate
     
    $header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
     
    	// If testing on Sandbox use: 
    	 $header .= "Host: www.sandbox.paypal.com:443\r\n";
    //$header .= "Host: ipnpb.paypal.com:443\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
     
    	// If testing on Sandbox use:
    	$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
    //$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);
     
    // assign posted variables to local variables
    $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'];
    $txn_id = $_POST['txn_id'];
    $receiver_email = "my.babylove66140@gmail.com";
    $payer_email = $_POST['payer_email'];
     
    //set email variables
    $From_email = "From: <a href="mailto:my.babylove66140@gmail.com">my.babylove66140@gmail.com</a>";
    $Subject_line = "SUBJ";
     
    $email_msg = "TEXT";
    $email_msg .= "\n\nThe details of your order are as follows:";
    $email_msg .= "\n\n" . "Transaction ID: " .  $txn_id ;
    $email_msg .= "\n" . "Payment Date: " . $payment_date;
     
    if (!$fp) {
    // HTTP ERROR
    } else {
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
    $res = fgets ($fp, 1024);
    if (strcmp ($res, "VERIFIED") == 0) {
    // check the payment_status is Completed
    // check that txn_id has not been previously processed
    // check that receiver_email is your Primary PayPal email
    // check that payment_amount/payment_currency are correct
    // process payment
     
    $mail_From = $From_email;
    $mail_To = $payer_email;
    $mail_Subject = $Subject_line;
    $mail_Body = $email_msg;
     
    mail($mail_To, $mail_Subject, $mail_Body, $mail_From);
     
     
    }
    else if (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
     
    $mail_From = $From_email;
    $mail_To = $receiver_email;
    $mail_Subject = "INVALID IPN POST";
    $mail_Body = "INVALID IPN POST. The raw POST string is below.\n\n" . $req;
     
    mail($mail_To, $mail_Subject, $mail_Body, $mail_From);
     
    }
    }
    fclose ($fp);
    }
    ?>
    le recoit un email mais aucun post j'ai ce message dans l'email:
    INVALID IPN POST cmd=_notify-validate.


    Merci.

  2. #2
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="image" src=" <lien url="https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif">https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif</lien>
    border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
    c'est quoi la balise '<lien>' dans l'attribut src de ton input, c'est plutot comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="image" src="https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif"
    border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    bonjour,

    voila mon code d'hier excuse ca celui d''au dessus etait avant hier.
    Je fais au moins une 30 de tests.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <form action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="POST">
     
    <img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
    <input type="hidden" name="upload" value="1">
    <input type="hidden" name="cmd" value="_cart">
    <input type="hidden" name="business" value="my.bab_1324302424_biz@gmail.com">
    <input type="hidden" name="item_name_1" value="mon objet">
    <input type="hidden" name="item_number_1" value="6">
    <input type="hidden" name="custom" value="22">
    <input type="hidden" name="amount_1" value="15.00">
    <input type="hidden" name="no_shipping" value="0">
    <input name="return" type="text" value="http://www.webcreation66.com/mybabylove/test1.php" />
    <input name="cancel_return" type="text" value="http://www.webcreation66.com/mybabylove/test4.php" />
     
    <input type="hidden" name="no_note" value="1">
    <input type="hidden" name="currency_code" value="EUR">
    <input type="hidden" name="lc" value="FR">
     
    <input type="image" src=" https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif
    border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
    </form>
    j avais changer le submit mais ne recoit tj aucun $_POST.
    merci.

  4. #4
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    tu ne recois pas les données de ton form ? si c'est ça que tu veux dire : normal l'url d l'action est https://www.sandbox.paypal.com/fr/cgi-bin/webscr et pas l'url de ton script après de ce que je vois je pense plutot que ton form soumet les données au cgi de paypal qui te renvoi des données en post sur l'url de retour ou se trouve la page test1.php si c'est le cas dans ton script essai d'inserer var_dump($_POST) dans une table quelconque en base de données pour voire ce que te renvoi paypal.

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    merci de ta reponse.

    j'ai mit dans test1.php
    var_dump($_POST):
    array(0) { }


    mais moi j'avais compris que paypal passer par la page de noritificatino qui est chez moi test3.php.
    pour l adresse form on m'a donner ce code de paypal.

  6. #6
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    Citation Envoyé par kate59 Voir le message
    bonjour,

    voila mon code d'hier excuse ca celui d''au dessus etait avant hier.
    Je fais au moins une 30 de tests.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <form action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="POST">
     
    <img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
    <input type="hidden" name="upload" value="1">
    <input type="hidden" name="cmd" value="_cart">
    <input type="hidden" name="business" value="my.bab_1324302424_biz@gmail.com">
    <input type="hidden" name="item_name_1" value="mon objet">
    <input type="hidden" name="item_number_1" value="6">
    <input type="hidden" name="custom" value="22">
    <input type="hidden" name="amount_1" value="15.00">
    <input type="hidden" name="no_shipping" value="0">
    <input name="return" type="text" value="http://www.webcreation66.com/mybabylove/test1.php" />
    <input name="cancel_return" type="text" value="http://www.webcreation66.com/mybabylove/test4.php" />
     
    <input type="hidden" name="no_note" value="1">
    <input type="hidden" name="currency_code" value="EUR">
    <input type="hidden" name="lc" value="FR">
     
    <input type="image" src=" https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif
    border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
    </form>
    j avais changer le submit mais ne recoit tj aucun $_POST.
    merci.
    Dans le second code que t'as posté c'est test1.php pour le retour et test4.php en cas d'annulation du client...
    le $_POST est vide parce que si tu as appelé directement la page via ta barre d'adresse, y a pas de données qui transite en post...
    si tu as le script d'origine pour le traitement (doc) poste le qu'on voit le code d'origine...
    peux tu poster le contenu du mail que tu reçois pour connaitre la variable qui est en cause.

  7. #7
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    voila le contenu de mon email:

    INVALID IPN POST. The raw POST string is below.

    cmd=_notify-validate


    et pour formulaire type difference est que moi cmd est _cart pour le panier et que je doit rajouter _x a certains information pour avoir plusieurs produit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    <input type='hidden' value="Montant_Achat" name="amount" />
    <input name="currency_code" type="hidden" value="EUR" />
    <input name="shipping" type="hidden" value="0.00" />
    <input name="tax" type="hidden" value="0.00" />
    <input name="return" type="hidden" value="http://votredomaine/paiementValide.php" />
    <input name="cancel_return" type="hidden" value="http://votredomaine/paiementAnnule.php" />
    <input name="notify_url" type="hidden" value="http://votredomaine/validationPaiement.php" />
    <input name="cmd" type="hidden" value="_xclick" />
    <input name="business" type="hidden" value="votre_emailtest_biz@domaine" />
    <input name="item_name" type="hidden" value="Nom de votre produit" />
    <input name="no_note" type="hidden" value="1" />
    <input name="lc" type="hidden" value="FR" />
    <input name="bn" type="hidden" value="PP-BuyNowBF" />
    <input name="custom" type="hidden" value="ID_ACHETEUR" />
    <input alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée" name="submit" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" type="image" /><img src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" border="0" alt="" width="1" height="1" />
    </form>

Discussions similaires

  1. [MySQL] Décodage des accents html avant insert BDD
    Par lagratteCchouette dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/08/2008, 22h43
  2. Conseil pour bdd
    Par Zilfi63 dans le forum Modélisation
    Réponses: 7
    Dernier message: 04/06/2007, 16h05
  3. [MySQL] Prefixe pour insertion bdd !
    Par dekovince dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/05/2007, 16h24
  4. [PayPal] Intégrer module "je suis nouveau client" + paiement Paypal
    Par kervano dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 08/07/2006, 20h21
  5. Réponses: 4
    Dernier message: 13/04/2004, 19h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo