INFOTRONIC3000

paymentDo.php

Sep 9th, 2015
96
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /*
  3. Template Name: paymentDo
  4. */
  5. ?>
  6. <?php  
  7.     require_once('nusoap/lib/nusoap.php');
  8.  
  9.     $merchantId = 'marcapropria';
  10.     $authorizerId = $_POST['authorizerId'];
  11.     $cardExpiryDate = $_POST['mes'] . $_POST['year'];
  12.     $cardNumber = $_POST['cardNumber'];
  13.     $cardSecurityCode = $_POST['cardSecurityCode'];
  14.     $customerId = $_POST['customerCedula']; //$_POST['customerNacionalidad'] .
  15.     $autoConfirmation = true;
  16.     $installmentType = '4';
  17.     $installments = '1';
  18.     $amount = $_POST['amount'];
  19.  
  20.     echo "<pre>" var_dump($_POST); echo "</pre>"; die();
  21.  
  22.     $endpoint = 'https://esitef-homologacao.softwareexpress.com.br/e-sitef-hml/Payment2?wsdl';
  23.     $wsdl = true;
  24.     $proxyhost = false;
  25.     $proxyport = false;
  26.     $proxyusername = false;
  27.     $proxypassword = false;
  28.     $timeout = 0;
  29.     $response_timeout = 300;
  30.     $client = new nusoap_client($endpoint, $wsdl, $proxyhost, $proxyport, $proxyusername, $proxypassword, $timeout, $response_timeout);
  31.     $err = $client->getError();
  32.     if ($err) {
  33.         echo '<h2>Error</h2><pre>' . $err . '</pre>';
  34.         echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
  35.         exit();
  36.     }
  37.     $transactionRequest = array('transactionRequest' => array
  38.                                 (
  39.                                 'amount' => $amount,
  40.                                 'merchantId' => $merchantId,
  41.                                 'merchantUSN' => '19949576',
  42.                                 'orderId' => '19949576'
  43.                                 ));
  44.  
  45.     $payment = $client->getProxy();
  46.     $transactionResponse = $payment->beginTransaction($transactionRequest);
  47.     $nit = $transactionResponse['transactionResponse']['nit'];
  48.     $paymentRequest = array('paymentRequest' => array
  49.                             (
  50.                             'authorizerId' => $authorizerId,
  51.                             'autoConfirmation' => $autoConfirmation,
  52.                             'cardExpiryDate' => $cardExpiryDate,
  53.                             'cardNumber' => $cardNumber,
  54.                             'cardSecurityCode' => $cardSecurityCode,
  55.                             'customerId' => $customerId,
  56.                             'installmentType' => $installmentType,
  57.                             'installments' => $installments,
  58.                             'nit' => $nit
  59.                             ));
  60.     // Ejecutar doPayment
  61.     $inicio = time();
  62.     $result = $payment->doPayment($paymentRequest);
  63.     $tiempo = time() - $inicio;
  64.  
  65.     // Revisar timeOut del doPayment
  66.     if (($tiempo < 300)) {
  67.         // Intentar hasta 3 veces getStatus
  68.         $aunNo = true;
  69.         $veces = 0;
  70.         while ($aunNo && ($veces < 3)) {
  71.             // Ejecutar getStatus
  72.             $inicio = time();
  73.             $merchantKey = '6837DECF88749CE639CD19A38EB4EEF2D8DB5A297159971C2492DA9146846B46';
  74.             $getStatusRequest = array('merchantKey' => $merchantKey, 'nit' => $nit);
  75.             $resultGetStatus = $payment->getStatus($getStatusRequest);
  76.             // Revisar timeOut del getStatus
  77.             $tiempo = time() - $inicio;
  78.             if (!(($tiempo < 300))) {
  79.                 $aunNo = false;
  80.             };
  81.             $veces++;
  82.         };
  83.         if ($aunNo && ($veces != 3)) {
  84.         // FATAL
  85.         }else{
  86.         // PROCESAR $resultGetStatus
  87.             echo '<h2>Status</h2><pre>';
  88.             print_r($resultGetStatus);
  89.             echo '</pre>';
  90.         };
  91.     }else{
  92.         // PROCESAR $result
  93.         echo '<h2>Fault</h2><pre>';
  94.         print_r($result);
  95.         echo '</pre>';
  96.     };
  97.     echo '<h2>Status</h2><pre>';
  98.     print_r($resultGetStatus);
  99.     echo '</pre>';
  100.     if ($client->fault) {
  101.     echo '<h2>Fault</h2><pre>';
  102.     print_r($result);
  103.     echo '</pre>';
  104.     } else {
  105.         $err = $client->getError();
  106.         if ($err) {
  107.             echo '<h2>Error</h2><pre>' . $err . '</pre>';
  108.         } else {
  109.             echo '<h2>Resultado Transaccion</h2><pre>';
  110.             echo $result['paymentResponse']['customerReceipt']
  111.             echo "---------------------------------------<br>";
  112.             echo $result['paymentResponse']['merchantReceipt']
  113.             echo '</pre>';
  114.             echo "<input type='button' name='imprimir' value='Imprimir' onclick='window.print();'>";
  115.         }
  116.     }
  117.  
  118.     echo '<h2>Request</h2><pre>' . htmlspecialchars($payment->request, ENT_QUOTES) . '</pre>';
  119.     echo '<h2>Response</h2><pre>' . htmlspecialchars($payment->response, ENT_QUOTES) . '</pre>';
  120.     echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
  121. ?>
RAW Paste Data