HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/tienda-qas.allup.com.co/wp-content/plugins/zonapagos/getpay.php
<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require( dirname(__DIR__) . '/../../wp-config.php' );
global $wpdb;
global $woocommerce;
$woocommerce = new woocommerce();
$available_gateways = $woocommerce->payment_gateways->get_available_payment_gateways();

//$body = print_r($_REQUEST, true);
//$file = $id_pago . '_' . time() . '_' . 'log.txt';
//file_put_contents($file, $body);

$id_pago = $_REQUEST['id_pago'];
$order = new WC_Order($id_pago);
$service_url = 'https://www.zonapagos.com/WsVerificarPagoV4/VerificarPagos.asmx?wsdl';
$client = new SoapClient($service_url);
$params = array(
    'int_id_comercio' => $available_gateways['zonapagos']->settings['int_id_comercio'],
    'str_usr_comercio' => $available_gateways['zonapagos']->settings['str_usr_comercio'],
    'str_pwd_Comercio' => $available_gateways['zonapagos']->settings['str_pwd_Comercio'],
    'str_id_pago' => $id_pago,
    'int_no_pago' => -1,
    'int_error' => 0,
    'int_cantidad_pagos' => 0
);
$result = $client->__soapCall('verificar_pago_v4', array($params));
if ($result->verificar_pago_v4Result == 1) {
    $pagos = $result->int_cantidad_pagos;
    $transacciones = explode("| ; |", $result->str_res_pago);
    $transacciones_array = [];
    foreach ($transacciones as $transaccion) {
        $transaccion_array = explode(" | ", $transaccion);
        if (sizeof($transaccion_array) > 1)
            array_push($transacciones_array, $transaccion_array);
    }

    foreach ($transacciones_array as $transaccion) {
        $estado_pago = $transaccion[1];
        switch ($estado_pago) {
            case "1":
                $order->payment_complete();
                $order->update_status('completed', __('Pago exitoso', 'woothemes'));
                update_post_meta($id_pago, '_zp_detalle_estado', 'Pago exitoso');
                break;
            case "888":
                $order->update_status('pending', __('Pago pendiente por iniciar', 'woothemes'));
                update_post_meta($id_pago, '_zp_detalle_estado', 'Pago pendiente por iniciar');
                break;
            case "999":
                $order->update_status('pending', __('Pago pendiente por finalizar', 'woothemes'));
                update_post_meta($id_pago, '_zp_detalle_estado', 'Pago pendiente por finalizar');
                break;
            case "4001":
                $order->update_status('pending', __('Pago pendiente por CR', 'woothemes'));
                update_post_meta($id_pago, '_zp_detalle_estado', 'Pago pendiente por CR');
                break;
            case "1000":
                $order->set_status('cancelled', __('Pago rechazado', 'woothemes'));
                update_post_meta($id_pago, '_zp_detalle_estado', 'Pago rechazado');
                break;
            case "1001":
                $order->update_status('cancelled', __('Pago rechazado. Error entre PSE y la Entidad Bancaria', 'woothemes'));
                update_post_meta($id_pago, '_zp_detalle_estado', 'Pago rechazado. Error entre PSE y la Entidad Bancaria');
                break;
            case "4000":
                $order->update_status('cancelled', __('Pago rechazado CR', 'woothemes'));
                update_post_meta($id_pago, '_zp_detalle_estado', 'Pago rechazado CR');
                break;
            case "4003":
                $order->update_status('cancelled', __('Pago rechazado. Error CR', 'woothemes'));
                update_post_meta($id_pago, '_zp_detalle_estado', 'Pago rechazado. Error CR');
                break;
        }
        $order->save();
        $forma_pago = $transaccion[14];
        switch ($forma_pago) {
            case "29":
                update_post_meta($id_pago, '_zp_id_forma_pago', '29');
                update_post_meta($id_pago, '_zp_forma_pago', 'PSE');
                update_post_meta($id_pago, '_zp_ticketID', $transaccion[15]);
                update_post_meta($id_pago, '_zp_codigo_servico', $transaccion[16]);
                update_post_meta($id_pago, '_zp_codigo_banco', $transaccion[17]);
                update_post_meta($id_pago, '_zp_nombre_banco', $transaccion[18]);
                update_post_meta($id_pago, '_zp_codigo_transaccion', $transaccion[19]);
                update_post_meta($id_pago, '_zp_ciclo_transaccion', $transaccion[20]);
                break;
            case "32":
                update_post_meta($id_pago, '_zp_id_forma_pago', '32');
                update_post_meta($id_pago, '_zp_forma_pago', 'Tarjeta de crédito');
                update_post_meta($id_pago, '_zp_ticketID', $transaccion[15]);
                update_post_meta($id_pago, '_zp_num_tarjeta', $transaccion[16]);
                update_post_meta($id_pago, '_zp_franquicia', $transaccion[17]);
                update_post_meta($id_pago, '_zp_cod_aprobacion', $transaccion[18]);
                update_post_meta($id_pago, '_zp_num_recibo', $transaccion[19]);
                break;
            case "41":
                update_post_meta($id_pago, '_zp_id_forma_pago', '41');
                update_post_meta($id_pago, '_zp_forma_pago', 'PDF generado en ZonaPAGOS');
                break;
            case "42":
                update_post_meta($id_pago, '_zp_id_forma_pago', '42');
                update_post_meta($id_pago, '_zp_forma_pago', 'Gana');
                break;
            case "45":
                update_post_meta($id_pago, '_zp_id_forma_pago', '45');
                update_post_meta($id_pago, '_zp_forma_pago', 'Tarjeta Tuya');
                break;
        }
    }
} else {
    echo "Error:" . $result->str_detalle;
}
?>