Пример #1
0
 function call_sar($paramsSAR, $logger)
 {
     $esProductivo = $this->ambiente == "prod";
     $http_header = $this->getHttpHeader($esProductivo);
     $connector = new Sdk($http_header, $this->ambiente);
     $response_sar = $connector->sendAuthorizeRequest($paramsSAR['comercio'], $paramsSAR['operacion']);
     $logger->info('response SAR ' . json_encode($response_sar));
     if ($response_sar["StatusCode"] == 702 && !empty($http_header) && !empty($paramsSAR['comercio']['Merchant']) && !empty($paramsSAR['comercio']['Security'])) {
         $response_sar = $connector->sendAuthorizeRequest($paramsSAR['comercio'], $paramsSAR['operacion']);
         $logger->info('reintento');
         $logger->info('response SAR ' . json_encode($response_sar));
     }
     return $response_sar;
 }
Пример #2
0
use TodoPago\Sdk;
//importo archivo con SDK
include_once '../../vendor/autoload.php';
//común a todas los métodos
$http_header = array('Authorization' => 'TODOPAGO 0129b065cfb744718166913eba827a2f', 'user_agent' => 'PHPSoapClient');
$operationid = rand(1, 100000000);
//opciones para el método sendAuthorizeRequest
$optionsSAR_comercio = array('Security' => '0129b065cfb744718166913eba827a2f', 'EncodingMethod' => 'XML', 'Merchant' => 35, 'URL_OK' => "http://" . $_SERVER['SERVER_NAME'] . ":" . $_SERVER['SERVER_PORT'] . str_replace($_SERVER['DOCUMENT_ROOT'], '', dirname($_SERVER['SCRIPT_FILENAME'])) . "/exito.php?operationid={$operationid}", 'URL_ERROR' => "http://" . $_SERVER['SERVER_NAME'] . ":" . $_SERVER['SERVER_PORT'] . str_replace($_SERVER['DOCUMENT_ROOT'], '', dirname($_SERVER['SCRIPT_FILENAME'])) . "/error.php?operationid={$operationid}");
$optionsSAR_operacion = array('MERCHANT' => "35", 'OPERATIONID' => "01", 'CURRENCYCODE' => 032, 'AMOUNT' => "54");
//opciones para el método getAuthorizeAnswer
$optionsGAA = array('Security' => '0129b065cfb744718166913eba827a2f', 'Merchant' => "35", 'RequestKey' => '8496472a-8c87-e35b-dcf2-94d5e31eb12f', 'AnswerKey' => '8496472a-8c87-e35b-dcf2-94d5e31eb12f');
//opciones para el método getAllPaymentMethods
$optionsGAMP = array("MERCHANT" => 35);
//opciones para el método getStatus
$optionsGS = array('MERCHANT' => '35', 'OPERATIONID' => '141120084707');
//creo instancia de la clase TodoPago
$connector = new Sdk($http_header, "test");
//ejecuto los métodos
$rta = $connector->sendAuthorizeRequest($optionsSAR_comercio, $optionsSAR_operacion);
$rta2 = $connector->getAuthorizeAnswer($optionsGAA);
$rta3 = $connector->getAllPaymentMethods($optionsGAMP);
$rta4 = $connector->getStatus($optionsGS);
//imprimo respuestas
echo "<h3>var_dump de la respuesta de Send Authorize Request</h3>";
var_dump($rta);
echo "<h3>var_dump de la respuesta de Get Authorize Answer</h3>";
var_dump($rta2);
echo "<h3>var_dump de la respuesta de Get All Payment Methods</h3>";
var_dump($rta3);
echo "<h3>var_dump de la respuesta de Get Status</h3>";
var_dump($rta4);
Пример #3
0
 function first_step_todopago($order_id)
 {
     if (isset($_GET["second_step"])) {
         //Second Step
         $this->second_step_todopago();
     } else {
         $order = new WC_Order($order_id);
         //var_dump($order);
         if ($order->payment_method == 'todopago') {
             $this->_logTodoPago($order_id, 'first step a ' . $this->ambiente);
             require_once dirname(__FILE__) . '/lib/Sdk.php';
             $esProductivo = $this->ambiente == "prod";
             $http_header = $this->getHttpHeader($esProductivo);
             $connector = new Sdk($http_header, $this->ambiente);
             $this->setOrderStatus($order, 'estado_inicio');
             $returnURL = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}/{$_SERVER['REQUEST_URI']}" . '&second_step=true';
             $optionsSAR_comercio = $this->getOptionsSARComercio($esProductivo, $returnURL);
             $optionsSAR_operacion = $this->getOptionsSAROperacion($esProductivo, $order);
             $optionsSAR_operacion = array_merge_recursive($optionsSAR_operacion, $this->getParamsCybersource($order));
             $paramsSAR['comercio'] = $optionsSAR_comercio;
             $paramsSAR['operacion'] = $optionsSAR_operacion;
             $this->_logTodoPago($order_id, "params SAR", json_encode($paramsSAR));
             $rta_SAR = $connector->sendAuthorizeRequest($optionsSAR_comercio, $optionsSAR_operacion);
             $this->_logTodoPago($order_id, "responseSAR", json_encode($rta_SAR));
             $requestKey = $rta_SAR["RequestKey"];
             $publicRequestKey = $rta_SAR['PublicRequestKey'];
             $URL_Request = $rta_SAR["URL_Request"];
             $StatusCode = $rta_SAR["StatusCode"];
             global $wpdb;
             $wpdb->delete($wpdb->postmeta, array('post_id' => $order_id, 'meta_key' => "request_key"), array('%d', '%s'));
             $wpdb->insert($wpdb->postmeta, array('post_id' => $order_id, 'meta_key' => "request_key", 'meta_value' => $requestKey), array('%d', '%s', '%s'));
             $fechaActual = new DateTime();
             $wpdb->insert($wpdb->prefix . 'todopago_transaccion', array('id_orden' => $order_id, 'params_SAR' => json_encode($paramsSAR), 'response_SAR' => json_encode($rta_SAR), 'request_key' => $requestKey, 'public_request_key' => $publicRequestKey), array('%d', '%s', '%s', '%s'));
             if ($StatusCode == -1) {
                 echo '<p> Gracias por su órden, click en el botón de abajo para pagar con TodoPago </p>';
                 echo $this->generate_form($order, $URL_Request);
             } else {
                 $this->_printErrorMsg();
             }
         }
         //End $order->payment_method == 'todopago'
     }
     //End isset($_GET["second_step"])
 }