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; }
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);
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"]) }