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

Langage PHP Discussion :

Explication json post payplug


Sujet :

Langage PHP

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 Explication json post payplug
    Bonjour,

    J'essaye d'installer payplug sur mon site très complexe si j'ai compris un ipn est envoyé après le formulaire de paiement enfaite je souhaite récupérer des infos postés par le formulaire pour afficher des infos après le paiement sur la page de succès du paiment.

    Voici une doc que j'ai trouvé pour être mit si j'ai compris sur la page de succès mais je ne sais pas si c'est pas plutôt la page Ipn ?

    https://www.payplug.fr/static/defaul...on_PayPlug.pdf


    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ce document parle à la fois de la page de validation de l'IPN et de la page de succès pour l'utilisateur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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
    j'ai créer les pages mais aucun POST n'est retournée:

    page paiement.php:

    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
    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
    <?php
     
    //Get the variables from file index.php thanks to super variable POST
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];
    $livre = $_POST['livre'];
    $format = $_POST['format'];
    $amount = $_POST['amount'];
    $savecard = $_POST['savecard'];
     
    require_once('payplug-php/lib/init.php');
    require_once('config.php');
     
     
    if (isset($savecard)) {
      $payment = \Payplug\Payment::create(array(
        'amount'         => $amount*100,
        'currency'       => 'EUR',
        'save_card'      => false,
        'customer'       => array(
          'email'      => $email,
          'first_name' => $firstname,
          'last_name'  => $lastname
        ),
        "hosted_payment" => array(
          "return_url" => 'http://test.fr/payplug-lightbox-master/success.php',
          "cancel_url" => 'http://test.fr/payplug-lightbox-master/cancel.html'
        ),
        'notification_url' => 'http://test.fr/payplug-lightbox-master/notifications.php',
    	'metadata'          => array(
                'order_id'          => $my_order_id,
    			'shipping'          => $format,
    			'product_id'          => $livre
     
            )
        ));
      } else {
        $payment = \Payplug\Payment::create(array(
          'amount'         => $amount*100,
          'currency'       => 'EUR',
          'save_card'      => false,
          'customer'       => array(
            'email'      => $email,
            'first_name' => $firstname,
            'last_name'  => $lastname
          ),
          "hosted_payment" => array(
            "return_url" => 'http://test.fr/payplug-lightbox-master/success.php',
            "cancel_url" => 'http://test.fr/payplug-lightbox-master/cancel.html'
          ),
          'notification_url' => 'http://test.fr/payplug-lightbox-master/notifications.php',
    		'metadata'          => array(
                'order_id'          => $my_order_id,
    			'shipping'          => $format,
    			'product_id'          => $livre,
    			'customer_id'          => $telephone
     
           )
        ));
        }
     
     
        ?>
     
        <!DOCTYPE html>
        <html lang="en">
        <head>
          <title>PayPlug lightbox example</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
          <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
          <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
          <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
          <link href="//netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.css" rel="stylesheet">
          <link href="styles.css" rel="stylesheet">
          <script type="text/javascript" src="https://api.payplug.com/js/1.0/form.js"></script>
          <script type="text/javascript">
          document.addEventListener('DOMContentLoaded', function() {
            [].forEach.call(document.querySelectorAll("#signupForm"), function(el) {
              el.addEventListener('submit', function(event) {
                var payplug_url = '<?= $payment->hosted_payment->payment_url ?>';
                Payplug.showPayment(payplug_url);
                event.preventDefault();
              })
            })
          })
          </script>
        </head>
        <body>
          <div class="container">
            <div class="row">
              <div class="col-md-6 col-md-offset-3">
                <h1><i class="fa fa-cog fa-spin fa-2x fa-fw"></i><span class="sr-only">Loading...</span>PayPlug lightbox example</h1>
                <hr />
                <p><strong>Thank you for trying my lightbox!</strong></p>
                <p><?php echo "Dear ".$firstname." ".$lastname.","; ?></p>
                <p><?php echo "you will be charged ".$livre." ".$format."€!<br />Please click on the button below." ?></p>
                <hr />
              </div>
              <div class="col-md-6 col-md-offset-3">
                <form action="" method="post" id="signupForm" class="formulaire" novalidate>
                  <p>
                    <button type="submit" class="btn btn-success">Try the lightbox</button>
                  </p>
                </form>
                <hr />
                <p><a href="https://www.payplug.com/docs/api/apiref.html#api-testing" target="_blank">Please click here to get Test card numbers</a></p>
              </div>
            </div>
          </div>
        </body>
     
        <br /><br /><br /><br />
     
        <footer>
          <div>
            <a href="https://www.payplug.com" target="_blank">
              <!--Center the image and make it responsive by the use of class="center-block img-responsive" -->
              <img src="https://s3-eu-west-1.amazonaws.com/payplug-badges/en/badge_narrow.png" class="center-block img-responsive" width="240px" border="0"/>
            </a>
          </div>
        </footer>
        </html>



    notification :
    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
    <?php
    require_once('payplug_php/lib/init.php');
    Payplug\Payplug::setSecretKey('sk_test_00000000');
     
    $headers = getallheaders();
    /* For more security, put the keys in uppercase and retrieve
     * the signature using the key in uppercase
     */
    $headers = array_change_key_case($headers, CASE_UPPER);
    $signature = base64_decode($headers['PAYPLUG-SIGNATURE']);
     
    /* The data is sent in the body of the POST request in JSON format
     * (MIME type = application / json).
     * Example : {"state": "paid", "customer", "2", "transaction_id": 4121, "custom_data": "29", "order": "42"}
     */
    $body = file_get_contents('php://input');
    $data = json_decode($body);
     
    $pbkey = PayPlug public pk_test_000000;
    $publicKey = openssl_pkey_get_public($pbkey);
    $isSignatureValid = (openssl_verify($body , $signature, $publicKey, OPENSSL_ALGO_SHA1) === 1);
     
    /* Take into account the IPN and send an email with the confirmation*/
    if($isSignatureValid){
       /* $message = "IPN received for ".$data->first_name." ".$data->last_name." for an amount of ".$data->amount." EUR";
        mail("merchant@example.org","IPN Received",$message);*/
    	$_SESSION['titre_livre']=$data->titre_livre;
    	$_SESSION['format_livre']=$data->format_livre;
    	setcookie('titre_livre', $_POST['titre_livre'], time() + 365*24*3600);
     
    } else {
     
    catch (\Payplug\Exception\PayplugException $exception) {
      // Handle errors
      echo 'Message: ' .$exception->getMessage();
    }
    }
    mais sur ma page success.php rien ne s'affiche aucun print renvoi array()

    je ne comprend pas ?

    MERCI.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans cette doc, il n'est pas dit que des données sont renvoyées vers la page success.
    Mais qu'est ce que tu souhaiterai recevoir ? Toutes les informations c'est déjà de ton côté qu'elles sont.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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 variable session recupérer alétoirement
    bonjour,
    je souhaite recuperer mon paymend_id apres le paiement du client pour afficher les infos du paiement mais ma session fonctionne une fois sur deux, j'ai reussi deux paiement puis la paymend_id n'a plus été recuperer lors de 3eme test d'achat en réel.

    quelqu'un pourrai t il me dire pourquoi la session ne marche pas tout le temps.
    j'ai mis le paiement et le validation de paiement dans la même page.

    page index.php:

    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
    <!DOCTYPE html>
    <html lang="fr">
     
        <head></head>
    <title></title>
    	  <form action="lightbox.php" method="post" id="contact_form">
     
    <p><label for="tel">Votre nom :</label>		
    <input type="text" name="nom" id="nom" value="">
    			</p>
     
    			<p><label for="tel">Votre prenom :</label>
    	<input type="text" name="prenom" id="prenom" value="">
    	</p>
     
     
    	<p><label for="tel">Votre email :</label>	
    	<input type="text" name="email" id="email" value="">
    	</p>
     
    	<p><label for="tel">Votre téléphone :</label>
    	<input type="text" name="tel" id="tel" value="">
     
    	</p>
    	<p><label for="tel">Votre titre de livre :</label>
    	<select id="livre" name="livre"">
    	  <option value="0" selected> Choisissez votre livre numérique : </option>
      <option value="t" selected>T</option> 
      <option value="s">S</option>
      <option value="k">K</option>
    </select>
     
    	</p>
     
     
    <p><label for="tel">Votre format désiré :</label>
     
    	<select id="format" name="format">
      <option value="epub" selected>epub (IPad/IPhone)</option> 
      <option value="pdf">pdf (Version ordinateur)</option>
      <option value="mobi">mobi (Tablette)</option>
    </select>
     
    	</p>
     Nous utilisons les services sécurisés de Payplug qui est une startup 100% Française.<br /> 
    Vous pouvez régler votre acompte ou paiement à partir de votre tablette ou de votre ordinateur ainsi que par smarthphone en utilisant votre carte bancaire.<br /> 
    Il n’est pas nécessaire de posséder un compte Payplug  !<br /> <br /> 
     
    <input type="submit" name="envoi" id="envoi" value="Payer maintenant" /><br /><br />
     
    </form>
        </body>
    </html>
    page lightbox (page de paiement et de succes en meme temps):

    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
    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
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    <?php   
    require_once 'include/init.php';
    	/**si formulaire soumis recuperation POST et bouton paiement*/
    	if($_POST['form']=="soumis")
    	{
    	$format  = htmlspecialchars($_POST['format']);
        $livre = htmlspecialchars($_POST['livre']);
    	/*$telephone  = $_POST['telephone'];*/
        $firstname  = htmlspecialchars($_POST['firstname']);
        $lastname  = htmlspecialchars($_POST['lastname']);
        $email  = htmlspecialchars($_POST['email']);
        $amount  = 9.90;
        $my_order_id = uniqid('fb', false);
        $savethecard = "no";
        $ifttt = htmlspecialchars($_POST['ifttt']);
    	/*$paymentid=0;*/
     
        if ($savethecard == "yes") { $save_opt = true; } else { $save_opt = false; $savethecard = "no"; }
        if ($ifttt == "yes") { 
          $notif_opt = $website_url.'/ifttt.php';
        } else { 
          $notif_opt = $notification_url.'?edom='.$mode.'&order_id='.$my_order_id;
          $ifttt = "no";
        }
     
     
        \Payplug\Payplug::setSecretKey($secretkey);
        $payment = \Payplug\Payment::create(array(
            'amount'            => $amount * 100,
            'currency'          => 'EUR',
            'save_card'         => $save_opt,
            'customer' => array(
                'email' => $email,
                'first_name' => $firstname,
                'last_name' => $lastname
            ),
            'hosted_payment' => array(
                'return_url' => $return_url.'?order_id='.$my_order_id,
                'cancel_url' => $cancel_url.'?order_id='.$my_order_id
            ),
            'notification_url'  => $notif_opt,
            'metadata'          => array(
                'order_id'          => $my_order_id,
    			'shipping'          => $format,
    			'product_id'          => $livre
    			/*'customer_id'          => $telephone*/
            )
        ));
    ?>
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <title> paiement en ligne - livres numérique en ligne</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
      <link href="//netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.css" rel="stylesheet">
      <script type="text/javascript" src="https://api.payplug.com/js/1.0/form.js"></script>
     
      <script type="text/javascript">
     
        document.addEventListener('DOMContentLoaded', function() {
          [].forEach.call(document.querySelectorAll("#signupForm"), function(el) {
            el.addEventListener('submit', function(event) {
              var payplug_url = '<?php echo $payment->hosted_payment->payment_url; ?>';
     
              Payplug.showPayment(payplug_url);
              event.preventDefault();
            })
          })
        })
      </script>
    </head>
    <body>
      <section>
        <div class="container">
          <div class="row">
            <div class='col-md-12'>
              <h1><i class="fa fa-square"></i> Page de commande</h1>
              <div class="col-md-12"><br /> </div>
              <hr />
     
              <?php
                $ppurl = $payment->hosted_payment->payment_url;
                $paymentid = $payment->id;
    			/*recupérer payment id*/
    			$expire = 365*24*3600; // on définit la durée du cookie, 1 an
    			setcookie('payment_id','test',(time()+$expire));  // on l'envoi
    			$_SESSION['paymentid'] = $paymentid;
    			$_SESSION['format'] = $format;
    			$_SESSION['livre'] = $livre;
    			/*$_SESSION['telephone'] = $telephone;*/
                echo "<h3><i class='fa fa-thumbs-o-up'></i> En ligne</h3>";
                echo "<br />";
                echo "<table class='table table-bordered'>";
                echo "<thead>";
                echo "<tr>";
                echo "<th>Description de la commande</th>";
                echo "<th>Informations de la commande</th>";
                echo "<th style='vertical-align:right;text-align:right;'>Total</th>";
    			   echo "<th style='vertical-align:right;text-align:right;'>Format choisi</th>";
    			      echo "<th style='vertical-align:right;text-align:right;'>Livre choisi</th>";
                echo "</tr>";
                echo "</thead>";
                echo "<tbody>";
                echo "<tr>";
                echo "<td style='vertical-align:middle;text-align:left;'><strong>Order n°".$my_order_id."</strong><br />
    			<small>Payment ID: <a href='infos.php?paymentid=".$paymentid."'>".$paymentid."</a> </small>
    			</td>";
                echo "<td style='vertical-align:middle;text-align:left;'>".$firstname." ".$lastname."<br/><small>E-mail: ".$email."</small></td>";
                echo "<td style='vertical-align:middle;text-align:right;'><strong>".$amount." €</strong></td>";
    			  echo "<td style='vertical-align:middle;text-align:right;'><strong>".$format." </strong></td>";
    			    echo "<td style='vertical-align:middle;text-align:right;'><strong>".$livre." </strong></td>";
                echo "</tr>";
                echo "<td rowspan='3' class='active' style='vertical-align:middle;text-align:center;'></td>";
                echo "<td class='active' style='vertical-align:middle;text-align:right;'><strong>Total commande(tax incl.)</strong></td>";
                echo "<td class='active' style='vertical-align:middle;text-align:right;''>".$amount." €</td>";
                echo "</tr>";
                echo "</tr>";
                echo "</tr>";
                echo "</tr>";
                echo "<td style='vertical-align:middle;text-align:right;' class='active'><h3>Total</h3></td>";
                echo "<td style='vertical-align:middle;text-align:right;' class='active'><h3>".$amount." €</h3></td>";
                echo "</tr>";
                echo "</tbody>";           
                echo "</table>";
     
              ?>
     
            </div>
            <div class='col-md-12 text-right'>
                <form action="" method="post" id="signupForm" class="formulaire" novalidate>
                  <p>
                    <button type="submit" class="btn btn-primary btn-lg">Payer par carte bancaire maintenant</button>
                  </p>
                </form>
     
    			<?php 
     
     
    			}
    			else
    			{
     
    /*paiement en ligne effectué affichage infos avec la recuperation paymend id et envoi email*/			
    			?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
     <title>page paiement 2 - livres numérique en ligne</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    <link href="//netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.css" rel="stylesheet">
     
    </head>
    <body>
    <section>
    <div class="container">
    <div class="row">
    <div class='col-md-12'><h1><i class="fa fa-credit-card"></i>Paiement en ligne effectué !</h1></div>
    <hr />           
    </div>
    </div>
    </section>
    <section>
    <div class="container">
    <div class="row">
     
    <hr />
    <?php		
    try {
    	$paymentid = htmlspecialchars($_SESSION['paymentid']);
    	if (empty($paymentid)) {
    		$paymentid = htmlspecialchars($_GET['payment_id']);
    	}
    	\Payplug\Payplug::setSecretKey($secretkey);
    	$retrieve_payment = \Payplug\Payment::retrieve($paymentid);
    } catch (\Payplug\Exception\PayPlugException $e) {
    	echo "<div class='col-md-12 bg-danger'><h5><i class='fa fa-exclamation-triangle'></i> " . $e->getMessage() . "</h5></div><hr /><br /><br />";
    	// handle errors
    } catch (\Payplug\Exception\ConnectionException $e) {
    	// Connection  with the PayPlug API failed.
    } catch (\Payplug\Exception\InvalidPaymentException $e) {
    	// Payment object provided is invalid.
    } catch (\Payplug\Exception\UndefinedAttributeException $e) {
    	// Requested attribute is undefined.
    } catch (\Payplug\Exception\HttpException $e) {
    	// Http errors.
    } catch (Exception $e) {
    	// Errors not related to PayPlug.
    	echo 'Caught exception: '. $e->getMessage();
    }
     
    $is_live = $retrieve_payment->is_live;
    $amount = $retrieve_payment->amount / 100;
    $is_paid = $retrieve_payment->is_paid;
    $amount_refunded = $retrieve_payment->amount_refunded / 100;
    $currency = $retrieve_payment->currency;
    $created_at = date('d/m/Y H:i:s', $retrieve_payment->created_at);
    $is_refunded = $retrieve_payment->is_refunded;
    $is_3ds = $retrieve_payment->is_3ds;
    $save_card = $retrieve_payment->save_card;
     
    $brand = $retrieve_payment->card->brand;
    $country_card = $retrieve_payment->card->country;
    $exp_month = $retrieve_payment->card->exp_month;
    $exp_year = $retrieve_payment->card->exp_year;
    $last4 = $retrieve_payment->card->last4;
    $cardid = $retrieve_payment->card->id;
     
    $first_name = $retrieve_payment->customer->first_name;
    $last_name = $retrieve_payment->customer->last_name;
    $email = $retrieve_payment->customer->email;
     
     
    $hosted_payment = $retrieve_payment->hosted_payment;
    $retrieve_payment_url = $retrieve_payment->hosted_payment->payment_url;
    $return_url = $retrieve_payment->hosted_payment->return_url;
    $cancel_url = $retrieve_payment->hosted_payment->cancel_url;
    $paid_at = date('d/m/Y H:i:s', $retrieve_payment->hosted_payment->paid_at);
     
    $response_code = $retrieve_payment->notification->response_code;
    $notification_url = $retrieve_payment->notification->url;
     
    $error_code = $retrieve_payment->failure->code;
    $error_message = $retrieve_payment->failure->message;
     
    $order_id = $retrieve_payment->metadata[order_id];
    $livre = $retrieve_payment->metadata[product_id];
    $format = $retrieve_payment->metadata[shipping];
    /*$telephone = $retrieve_payment->metadata[customer_id];*/
     
    if ($error_code == "aborted") {
    	$aborted = "true";
    } else {
    	$aborted = "false";
    }
     
    echo "<div class='col-md-12'>";
    if ($aborted == "true") {
    	echo "<span class='label label-danger'><i class='fa fa-ban'></i> Annulé</span>";
    } else {
    	if ($is_paid == 1) {
    		if ($is_refunded == "true") {
    			echo "<span class='label label-default'><i class='fa fa-fire'></i> Refusé</span>";
    		} elseif ($retrieve_payment->amount_refunded != 0) {
    			echo "<span class='label label-success'><i class='fa fa-fire'></i> Partiellement refusé</span>";
    		} else {
    			echo "<span class='label label-success'><i class='fa fa-check'></i> Payé</span>";
    		}
    	} elseif ($is_paid == 0 && empty($error_code)) {
    		echo "<span class='label label-warning'><i class='fa fa-clock-o'></i> En cours</span>";
    	} else {
    		echo "<span class='label label-danger'><i class='fa fa-exclamation-triangle'></i> Echec : ". $retrieve_payment->failure->code ."</span>";
    	}
    }
    if ($retrieve_payment->hosted_payment != null && $retrieve_payment->save_card == true) {
    	echo " <i class='fa fa-floppy-o'></i> ";
    } elseif ($retrieve_payment->hosted_payment == null && $retrieve_payment->save_card == false) {
    	echo " <i class='fa fa-recycle'></i> ";
    } elseif ($retrieve_payment->hosted_payment == null && $retrieve_payment->save_card == true) {
    	echo " <i class='fa fa-external-link'></i> ";
    } else {
    	echo " <i class='fa fa-credit-card'></i> ";
    }
     
     
     
    echo "<div class='col-md-12'><h3><i class='fa fa-info-circle'></i> Information de la commande :</h3></div>"; 
    echo " <div class='col-md-6'><strong>Payment ID: </strong>$paymentid </div>";
    echo " <div class='col-md-6'><strong>Format:</strong> $format </div>";
    echo " <div class='col-md-6'><strong>Livre:</strong> $livre </div>";
     
     
    echo "<div class='col-md-12'><h3><i class='fa fa-info-circle'></i> Information du paiement:</h3></div>"; 
    echo "<div class='col-md-6'><strong>Mode de paiement:</strong> " . var_export($is_live,true) . "</div>";
    echo "<div class='col-md-6'><strong>Id de la commande:</strong> $order_id </div>";  
    echo "<div class='col-md-6'><strong>Montant:</strong> $amount € </div>";
    echo "<div class='col-md-6'><strong>Date de la création:</strong> $created_at </div>";
     
    if ($amount_refunded != 0) {
    	echo "<br />";
    	echo "<div class='col-md-12'><h3><i class='fa fa-reply-all'></i> Information du refus :</h3></div>";
    	$refunds = \Payplug\Refund::listRefunds($paymentid);
    	$refund = $refunds['data'][0];
    	foreach ($refunds['data'] as $refund) {
    		$refund_id = $refund->id;
    		$refund_amount = $refund->amount / 100;
    		$refund_created = date('d/m/Y H:i:s', $refund->created_at);
    		$refund_reason = $refund->metadata[reason];
    		echo "<div class='col-md-6'><strong>Id refus:</strong> " . $refund_id . "</div>";
    		echo "<div class='col-md-6'><strong>Somme refusé:</strong> " .  $refund_amount . " € </div>";
    		echo "<div class='col-md-6'><strong>Date de création:</strong> " .  $refund_created . "</div>";
    		echo "<div class='col-md-6'><strong>Raison du refus:</strong> " .  $refund_reason . "</div>";
    		echo "<div class='col-md-12'><br /></div>";
    	}
    }
    echo "<br />";
    echo "<div class='col-md-12'><h3><i class='fa fa-user'></i> Informations du client :</h3></div>";
    echo "<div class='col-md-6'><strong>Prénom:</strong> $first_name</div>";
     
    echo "<div class='col-md-6'><strong>E-mail:</strong> $email</div>";
    echo "<div class='col-md-6'><strong>Nom:</strong> $last_name</div>";
    /*echo "<div class='col-md-6'><strong>Téléphone:</strong> $telephone</div>";*/
    echo "<br />";
     
     
    ?>
    </div>
    </div>
    <br />
    <span style="font-weight:bold;font-size:1.2em;color:red;">cliquez sur le bouton pour télécharger votre livre et revenez ensuite sur notre site avec lien en bas de page.</span>
    <br /><br /><br />
    <?php
     
    if ($is_paid == 1) 
    {
     
     
     
    		// Sujet
    		$subject = 'Commande du site internet ';
     
    		// message
    		$message = '
    	<html>
    	<head>
    	<title>Commande du site internet </title>
    	</head>
    	<body>
    	<table>
    	<tr><td>Informations de commande</td></tr>	
    		<tr><td>Nom : '.$last_name.'</td></tr>
    		<tr><td>Prenom : '.$first_name.'</td></tr>
    		<tr><td>Email : '.$email.'</td></tr>
    		<tr><td>Livre : '.$livre.'</td></tr>
    		<tr><td>Format : '.$format.'</td></tr>
    		<tr><td>Tarif : '.$amount.'</td></tr>
    		<tr><td>Id paiement : '.$paymentid.'</td></tr>
    		
    	<tr><td>Merci pour votre achat !</td></tr>	
    	<tr><td>Site web :  - </td></tr>	
    	</table>
    	</body>
    	</html>
    	';
     
    		// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
    		$headers  = 'MIME-Version: 1.0' . "\r\n";
    		$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
     
     
    		  // Plusieurs destinataires
         $to  = 'test@gmail.com' . ', '; // notez la virgule
         $to .= $email;
    		// En-têtes additionnels
    		/*$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
    	$headers .= 'From: Anniversaire <anniversaire@example.com>' . "\r\n";*/
     
    		// Envoi
    		mail($to, $subject, $message, $headers);
     
    }
    ?>
    <br />Le téléchargement est possible à cette étape, si un probléme lors du téléchargement survient vous pouvez nous contacter sur notre formulaire de contact avec votre <strong>Payment ID</strong> disponible en haut de cette page.		
     
     
    			<?php
    			}
    			?>
            </div>
          </div>
        </div>
      </section>
      <section>
        <div class="container">
          <div class="row">
            <div class='col-md-12'><hr /><a href="../index.html"><i class="fa fa-chevron-left"></i> Annuler et retourner au site</a><br /><hr /></div>
          </div>
        </div>
      </section>
    </body>
    </html>
    page init:

    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
    <?php
    session_start();
    require_once 'include/config.php';
    require_once 'payplug-php/lib/init.php';
     
     
    $_SESSION['new_mode']="test";
    $mode = htmlspecialchars($_SESSION['new_mode']);
    if (empty($mode)) {
      $mode = htmlspecialchars($_GET['edom']);
      if (empty($mode)) {
        $mode  = htmlspecialchars($_POST['edom']);
      }
    }
     
     
    if ($mode == "test") {
      $secretkey = $pp_testkey;
      $publickey = $pub_testkey;
    } elseif ($mode == "live") {
      $secretkey = $pp_livekey;
      $publickey = $pub_livekey;
    } else {
      $mode = "test";
      $secretkey = $pp_testkey;
      $publickey = $pub_testkey;
    }
    page config:

    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
    <?php
    # PayPlug Credentials:
    ######################
    # API Keys:
    $pp_livekey = '';
    $pp_testkey = 'sk_test_00000000';
    # Public keys:
    $pub_livekey = '';
    $pub_testkey = '';
    # Website informations:
    $website_url = 'https://www.test.com';
    # Payment config:
    $return_url = $website_url.'/t/success.php';
    $cancel_url = $website_url.'/t/cancel.php';
    $notification_url = $website_url.'/t/notification.php';
    # Misc
    date_default_timezone_set('Europe/Paris');
    # Mode debug:
    $debug_mode = true;
    $_SESSION['new_mode']="test";
    je pense avoir tout mis.merci

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Merci pour ces 400 lignes de code sans queue ni tête ni commentaire ni indentation et qui font visiblement tout et n'importe quoi.
    Comment veux-tu qu'on s'y retrouve ?
    Pourquoi tout fourrer comme ça au même endroit ?

    Au passage htmlspecialchars() sert à afficher du texte dans une page HTML, à rien d'autre.
    Donc tu peux faire un gros ménage la dessus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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
    désolé payplug m'a consseillé ce lien :
    https://github.com/fbureau/PhPayPlug

    et c'est la que j'ai pu recuperer des pages que j'essaye deja de faire des paiement en test valide je compter nettoyer le code mais d'abord j'essaye de comprendre leur fonctionnement.

    si j'ai compris la formulaire de paiement envoie à une ipn de payplug et retourne sur la page de confirmation avec json input mais impossible de recuperer aucune information et cela fais plusieurs jours que je tourne en rond et modifie les codes des pages pour tester divers solution qui peut faire que le code peut etre un brouillon désolé j'essaye deja d'obtenir le payment_id sur la page succes mais session cookie ou get rien ne fonctionne et je ne comprend a quoi sert de faire une page notification si c'est eux qui nous envoi une notification automatique.

    page confirmation paiement me retourne cela et tout mes print sont vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    session_start();
     require_once 'lib/init.php';
     
    print_r($_POST);
    print_r($_GET);
    print_r($_SESSION);
    $input = file_get_contents('php://input');
    $received_event = json_decode($input); // On récupère l'évènement envoyé 
    print_r($received_event);
    Array ( ) Array ( [id] => ) Array ( )
    Fatal error: Uncaught Payplug\Exception\ConfigurationException: [0]: Expected string values for the token. thrown in /homepages/33/d679332957/htdocs/www/ptest/lib/Payplug/Payplug.php on line

    j'ai lu tout les codes :
    https://www.payplug.com/docs/api/api...eate-a-payment


    sur ma page de confirmation de paiement je viens de rajouter ce code :

    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
    <?php
    session_start();
     require_once 'lib/init.php';
    \Payplug\Payplug::setSecretKey('sk_test_AeGmU93dJK000"""');
     
    $input = file_get_contents('php://input');
    $received_event = json_decode($input); // On récupère l'évènement envoyé 
    print_r($received_event);
    // On peut ici mettre un filtre pour ne faire un traitement que pour certains évènements
    $retrieve_payment = \Payplug\Payment::retrieve($received_event->payment_id); 
     /*$livre = $retrieve_payment->metadata[product_id];
    		    $format = $retrieve_payment->metadata[shipping];*/
    			/*retrieve_payment_url = $retrieve_payment->hosted_payment->payment_url;/*/
    			print_r($retrieve_payment);
    			print_r($_POST);
    			print_r($format);
    print_r($_GET);
    print_r($_SESSION);
    mais tous les print reste avec des arrray vide.

    si quelqu'un pourrai m'expliquer comment faire pour en priorité recuperer ce payment_id.

    j'ai tout lu mais rien ne m'aide et ce paiement est très important.

    en suivant ce guide :
    https://www.payplug.com/docs/api/dow...es_fr_php.html


    j'ai tout repris de 0

    la page formulaire basique renvoie vers :

    paiement.php
    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
    	$email = 'john.watson@example.net';
    $amount = 33;
    \Payplug\Payplug::setSecretKey('sk_test_0000000');
    $payment = \Payplug\Payment::create(array(
      'amount'           => $amount * 100,
      'currency'         => 'EUR',
      'customer'         => array(
        'email'          => $email
      ),
      'hosted_payment'   => array(
        'return_url'     => 'http://test.com/ptest/return.php',
        'cancel_url'     => 'http://test.com/ptest/cancel.php',
      ),
      'notification_url' => 'http://test.com/ptest/notifications.php',
      'metadata'         => array(
        'shipping'    => 'karma'
      )
    ));
     
    $payment_url = $payment->hosted_payment->payment_url;
    print_r($payment_url);
    $payment_id = $payment->id;
    header('Location:' . $payment_url);
    mais rien ne se passe alors qu'il devrait me rediriger vers la page de paiement payplug voiici le print:


    https://www.payplug.com/pay/test/5popeg4lY5TWhJAkedETQC




    merci.

Discussions similaires

  1. Requête JSON POST
    Par mailoy dans le forum Android
    Réponses: 10
    Dernier message: 26/05/2015, 00h16
  2. Ajax avec jQuery: envoi par POST retour en JSON
    Par band22 dans le forum jQuery
    Réponses: 1
    Dernier message: 14/10/2011, 10h54
  3. Envoyer du json en post
    Par bensra dans le forum C#
    Réponses: 2
    Dernier message: 14/09/2011, 11h07
  4. REST JSON et post
    Par topolino dans le forum Windows Communication Foundation
    Réponses: 4
    Dernier message: 28/03/2011, 17h40
  5. récupérer des variables json hors de $.post
    Par Alexdezark dans le forum jQuery
    Réponses: 3
    Dernier message: 29/07/2010, 18h44

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