SHARE
TWEET

Untitled

a guest Apr 18th, 2019 224 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php // Pagamento ricorrente - Pagamento successivo - Chiamata sincrona
  2. $APIKEY = "<ALIAS>";
  3. $CHIAVESEGRETA = "<CHIAVE SEGRETA PER CALCOLO MAC>";
  4.  
  5. $requestUrl = "https://int-ecommerce.nexi.it/ecomm/api/recurring/pagamentoRicorrente";
  6.  
  7. $numContratto = $_REQUEST['numContratto']; // Parametri dalla richiesta
  8.  
  9. $codTrans = "TESTPS_" . date('YmdHis');  $importo = "5000";  $divisa = "978";
  10. $scadenza = '';  $timeStamp = (time()) * 1000;
  11.  
  12. // Calcolo MAC
  13. $mac = sha1('apiKey=' . $APIKEY . 'numeroContratto=' . $numContratto . 'codiceTransazione=' . $codTrans . 'importo=' . $importo . "divisa=" . $divisa . "scadenza=" . $scadenza . "timeStamp=" . $timeStamp . $CHIAVESEGRETA);
  14.  
  15. $requestParams = array(
  16.     'apiKey' => $APIKEY,
  17.     'numeroContratto' => $numContratto,
  18.     'codiceTransazione' => $codTrans,    'importo' => $importo,   'divisa' => $divisa,    'scadenza' => $scadenza,
  19.     'codiceGruppo' => 'GRUPPOTEST',
  20.     'timeStamp' => (string) $timeStamp, 'mac' => $mac
  21. );
  22. $json = json_encode($requestParams);
  23.  
  24. $connection = curl_init();
  25. curl_setopt($connection, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  26. curl_setopt($connection, CURLOPT_URL, $requestUrl);
  27. curl_setopt($connection, CURLOPT_POST, 1);
  28. curl_setopt($connection, CURLOPT_POSTFIELDS, $json);
  29. curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
  30. curl_setopt($connection, CURLINFO_HEADER_OUT, true);
  31.  
  32. $response = curl_exec($connection);
  33. curl_close($connection);
  34. $dataVerifica = json_decode($response, true);
  35.  
  36. if ($dataVerifica['esito'] == "OK") { // Transazione andata a buon fine calcolo MAC con i parametri di ritorno
  37.        $macCalculated = sha1('esito=' . $dataVerifica['esito'] . 'idOperazione=' . $dataVerifica['idOperazione'] .  
  38.                                                               'timeStamp=' . $dataVerifica['timeStamp'] . $CHIAVESEGRETA);
  39.        if ($macCalculated != $dataVerifica['mac']) {
  40.              echo 'Errore MAC: ' . $macCalculated . ' non corrisponde a ' . $dataVerifica['mac'];         exit;     }
  41.        echo 'Trans: ' . $codTrans . " è avvenuta con successo; codice autorizzazione:" .dataVerifica['codiceAutorizzazione'];
  42. } else { // Transazione rifiutata
  43.     echo 'La transazione ' . $codTrans . " è stata rifiutata; descrizione errore: " . $dataVerifica['errore']['messaggio'];
  44. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top