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

Conception Web Discussion :

paypal sans ssl ni certificat risquer ou non


Sujet :

Conception Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 paypal sans ssl ni certificat risquer ou non
    Bonjour,

    voila j'ai doit installer un bouton paypal pour un produit de 1200 euros.
    avec un simple code:
    Code php : 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
    <?php
    $managerCommande= new CommandeManager_PDO($db);
    $managerInscrit= new InscritManager_PDO($db);
     
     
    $inscrit=$managerInscrit->getUnique($_POST['custom']);
    $commander = new Commande (
    	array (
     
    	'date_cmd' => $_POST['item_name'],
    	'total_poid_cmd' => $_POST['item_name'],
    	'montant_cmd' => $_POST['mc_gross'],
    	'mode_reglement' => 'paypal',
    	'mode_livraison' => 'colisimo',
    	'livraison_nom' => $inscrit['nom'],
    	'livraison_prenom' => $inscrit['prenom'],
    	'livraison_adresse1' => $inscrit['adresse'],
    	'livraison_cp' => $inscrit['cp'],
    	'livraison_ville' => $inscrit['ville'],
    	'livraison_pays' => 'france',
    	'id_client' => ($_POST['custom'])
    	)
    	);
     
     
    //lire le formulaire provenant du système PayPal et ajouter 'cmd'
    $req = 'cmd=_notify-validate';
     
        foreach ($_POST as $key => $value) {
            $value = urlencode(stripslashes($value));
           $req .= "&$key=$value";
        }
    	// renvoyer au système PayPal pour validation
        $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
        $fp = fsockopen ('ssl://www.paypal.com', 443, $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'];
        $txn_id = $_POST['txn_id'];
        $receiver_email = $_POST['receiver_email'];
        $payer_email = $_POST['payer_email'];
        $id_user = $_POST['custom'];
    	if (!$fp) {
        // ERREUR HTTP
       } else {
          fputs ($fp, $header . $req);
            while (!feof($fp)) {
                $res = fgets ($fp, 1024);
                if (strcmp ($res, "VERIFIED") == 0) {
                   // transaction valide
                }
                else if (strcmp ($res, "INVALID") == 0) {
                    // Transaction invalide               
                }
           }
            fclose ($fp);
       }
       // transaction valide
     
                  // vérifier que payment_status a la valeur Completed
                    if ( $payment_status == "Completed") {
                        // vérifier que txn_id n'a pas été précédemment traité: Créez une fonction qui va interroger votre base de données
                       if (VerifIXNID($txn_id) == 0) {
                           // vérifier que receiver_email est votre adresse email PayPal principale
                          if ( "my.bab_1324302424_biz@gmail.com" == $receiver_email) {
                              // vérifier que payment_amount et payment_currency sont corrects
                              // traiter le paiement
    						  $managerCommande->add($commander);
    						 echo'1'; 
                            }
               else {
                 // Mauvaise adresse email paypal
                 }
               }
                else {
                    // ID de transaction déjà utilisé
                       }
                }
              else {
             // Statut de paiement: Echec
             }
    ?>
    Est ce que en utilisant que l'ipn il y'a un risque sans SSL ni certificat car mon hébergeur ne me le permet pas.

    merci.

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    disont que sans cryptage avec un analyseur de trame voir avec firebug on pourrais récupérer quelque info. donc oui risqué.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  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,

    merci je pense l'installer alors mais pour le moment.
    voila je doit installer mon site aujourdh'ui et je me bat depuis ce matin pour l'ipn.
    Apres 2 semaines de recherche, je suis perdu et sans çà je ne peut rien faire.
    Quand quelque arrive sur la page paypal tout fonctionne mais rien ne s'enregistre dans ma base.

    J'ai l'impression qu'il ne passe par L ipn.

    Comment faire?

    MON CODE:

    page formulaire:

    Code php : 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
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    <?php
    include(dirname(__FILE__).'/../config/config.inc.php');
    $description = "";
    $keywords = "";
    $title = "";
    $fakea = "";
    $navigation = true;
    $managerReservation= new ReservationManager_PDO($db);
    $body='';
     
    if(isset($_POST['civilite'])and isset($_POST['nom'])and isset($_POST['prenom'])and isset($_POST['adresse'])and isset($_POST['ville'])
    and isset($_POST['cp'])and isset($_POST['pays'])and isset($_POST['email'])and isset($_POST['telephone'])and isset($_POST['mode_paiement'])
    and isset($_POST['SaveAccount']))
    {
    if($managerReservation->exists($_POST['email'])==false)
    {
     
    if($_POST['type_reservation']=="Monsieur") 
    {
    $_POST['tarif_reservation']=1350;
    }
     
    if(($_POST['type_reservation'])=="Madame")
    {
     
    $_POST['tarif_reservation']=350;
    }
     
    if($_POST['type_reservation']=="Couple") 
    {
    $_POST['tarif_reservation']=1350;
    }
     
    $reservation = new Reservation (
    	array (
    	'civilite' => $_POST['civilite'],
    	'nom' => $_POST['nom'],
    	'prenom' => $_POST['prenom'],
    	'adresse' => $_POST['adresse'],
    	'ville' => $_POST['ville'],
    	'cp' => $_POST['cp'],
    	'pays' => $_POST['pays'],
    	'email' => $_POST['email'],
    	'telephone' => $_POST['telephone'],
    	'statut' => "en attente de paiement",
    	'mode_paiement' => $_POST['mode_paiement'],
    	'type_reservation' => $_POST['type_reservation'],
    	'tarif_reservation' => $_POST['tarif_reservation'],
    	'txn_id' => 0
    	)
     
     
    	);
     
    	//verifie si les variables ne sont pas vide
    	if ($reservation->isValid())
    	{
     
     
    			$managerReservation->save($reservation);
    			//header("Location:paiementbypaypal.php"); 
     
     
     
     
    		}
    		else
    		{
    		$erreurs = $reservation->erreurs();
    		}
     
     
    if($_POST['mode_paiement']=="paypal")
    {
     
    $reservation=$managerReservation->getByEmail($_POST['email']);
    $body.='<div class="texte_soiree">
    <h5>Votre reservation par '.$reservation->getModePaiement().' a bien ete enregister.<br />
    Pour finaliser votre reservation veuillez cliquez sur le bouton Acheter.<br />
    
    Merci</h5><br />
    </div>';
    $body.='
    <div class="texte_soiree">
    Vous avez choisi de pay&eacute; par le paiement s&eacute;curis&eacute; de paypal.<br />
    Vous avez souscrit votre reservation pour l’offre :<br />';
    $body.='<h1>'.$reservation->getTypeReservation().'</h1>';
    $body.='<br />
    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" value="'.$_POST['tarif_reservation'].'" 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="...paiementValide.php" />
    <input name="cancel_return" type="hidden" value="...paiementAnnule.php" />
    <input name="notify_url" type="hidden" value="...validationPaiement.php" />
    <input name="cmd" type="hidden" value="_xclick" />
    <input name="business" type="hidden" value="privat_1345541754_biz@gmail.com" />
    <input name="item_name" type="hidden" value="'.$_POST['type_reservation'].'" />
    <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="'.$reservation->getId().'" />
    <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>
    </div>';
    }
    else
    {
    $body.='<div class="texte_soiree">
    <h5>Votre reservation par '.$reservation->getModePaiement().' &agrave; bien &eacute;t&eacute; enregist&eacute;e.<br />
    Vous recevrez rapidement une r&eacute;s&eacute;rvation de notre part.<br />
    
    Merci</h5><br />
    <a href="'.RACINE_FRONTEND.'pages/presentation_yacht_club.php">Retour &agrave; l’accueil</a></div>';
    }
     
     
    }
    else
    {
    $body.='<div class="texte_soiree">
    <h5>Vous email est d&eacute;j&agrave; enregist&eacute; chez nous.<br />
    
    Merci</h5><br />
    <a href="'.RACINE_FRONTEND.'pages/presentation_yacht_club.php">Retour &agrave; l’accueil</a></div>';
    }
    }
    else
    {
    $body.='<div class="texte_soiree">
    <h5>Vous avez oublier de nous fournir votre :<br />';
     
     
     
     
    $body2='';
     
     
     
    include(dirname(__FILE__).'/../config/base4.php');
    ?>


    page ipn:

    Code php : 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
    90
     
    <?php
    include(dirname(__FILE__).'/../config/config.inc.php');
    $description = "";
    $keywords = "";
    $title = "";
    $fakea = "";
    $navigation = true;
    $body='';
     
     
    /*function VerifIXNID($txn_id){
    $nbreponse = $cn->query('SELECT COUNT(*) FROM reservation WHERE txn_id=\''.$txn_id.'\'')->fetchColumn();
    if($nbreponse > 0 ){
    return 1;
    }else{
    return 0;
    }
    }*/
     
    //lire le formulaire provenant du système PayPal et ajouter 'cmd'
    $req = 'cmd=_notify-validate';
     
        foreach ($_POST as $key => $value) {
            $value = urlencode(stripslashes($value));
           $req .= "&$key=$value";
        }
    	// renvoyer au système PayPal pour validation
        $header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
        $header.= "Content-Type: application/x-www-form-urlencoded\r\n";
        $header.= "Content-Length: " . strlen($req) . "\r\n\r\n";
        $fp = fsockopen ('www.sandbox.paypal.com', 443, $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'];
        $txn_id = $_POST['txn_id'];
        $receiver_email = $_POST['receiver_email'];
        $id_user = $_POST['custom'];
    	$managerReservation= new ReservationManager_PDO($db);
    		$reservation=$managerReservation->getUnique($_POST['custom']);
    		$reservation->PaimentValide($_POST['custom']);
    	if (!$fp) {
        $body.='erreur FTP';
       } else {
          fputs ($fp, $header . $req);
            while (!feof($fp)) {
                $res = fgets ($fp, 1024);
                if (strcmp ($res, "VERIFIED") == 0) {
                   // transaction valide
                }
                else if (strcmp ($res, "INVALID") == 0) {
                    // Transaction invalide               
                }
           }
            fclose ($fp);
       }
       // transaction valide
     
                  // vérifier que payment_status a la valeur Completed
                    if ( $payment_status == "Completed") {
     
                        // vérifier que txn_id n'a pas été précédemment traité: Créez une fonction qui va interroger votre base de données
                       if (VerifIXNID($txn_id) == 0) {
     
                           // vérifier que receiver_email est votre adresse email PayPal principale
                          if ("privat_1345541754_biz@gmail.com" == $receiver_email) {
     
                              // vérifier que payment_amount et payment_currency sont corrects
                              // traiter le paiement
    						  $reservation->PaimentValide($_POST['custom']);
    						  $reservation->AddTxnId($_POST['custom'],$_POST['txn_id']);
                            }
               else {
                $body.='<h6>L adresse email recut n est pas la meme que celle du compte de l acheteur.<br />Merci</h6>';
                 }
               }
                else {
    			  $body.='<h6>L id de la transaction recut n est pas la meme que celle lors de la transaction.<br />Merci</h6>';
                    // ID de transaction déjà utilisé
                       }
                }
              else {
    		    $body.='<h6>Le statut de paiement de l acheteur n est pas valider.<br />Merci</h6>';
             // Statut de paiement: Echec
             }
     
    include(dirname(__FILE__).'/../config/base4.php');
    ?>
    mERCI.

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    tu devrais plus poser ta question côté php qu'ici.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/07/2013, 20h55
  2. page securiser paypal sans certificat ssl
    Par kate59 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/03/2013, 13h47
  3. Client Serveur SSL et certificats
    Par oclone dans le forum Sécurité
    Réponses: 1
    Dernier message: 17/01/2008, 09h07
  4. [SSL] Des certificats auto-générés ?
    Par divxdede dans le forum Sécurité
    Réponses: 1
    Dernier message: 18/10/2007, 12h15
  5. [Applet][SSL] un certificat pour 2
    Par Housssss dans le forum Sécurité
    Réponses: 1
    Dernier message: 14/12/2005, 16h46

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