Changeset 3288747
- Timestamp:
- 05/07/2025 02:13:28 AM (11 months ago)
- Location:
- refacil-pay/trunk
- Files:
-
- 4 edited
-
class-gateway.php (modified) (14 diffs)
-
includes/logger.php (modified) (2 diffs)
-
re-facil-gateway.php (modified) (1 diff)
-
readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
refacil-pay/trunk/class-gateway.php
r3278455 r3288747 94 94 public function process_payment($order_id): array 95 95 { 96 $this->logger->setOrder($order_id); 96 97 $order = wc_get_order($order_id); 98 97 99 if (!$order) { 98 100 $this->logger->error('Order not found: ' . $order_id); … … 102 104 ); 103 105 } 104 105 $this->logger->info('Processing payment for order ' . $order_id);106 106 107 107 try { … … 120 120 } else { 121 121 $message = 'Error processing payment for order: ' . $order_id . ' - Response: ' . json_encode($response_transaction); 122 $this->logger->error($message); 122 $this->logger->error('Error en el procesamiento del pago: ' . json_encode([ 123 'order_id' => $order_id, 124 'response' => $response_transaction, 125 'error_message' => $message 126 ])); 123 127 124 128 return array( … … 129 133 } catch (Exception $e) { 130 134 $message = 'Exception processing payment for order ' . $order_id . ' - ' . $e->getMessage(); 131 $this->logger->error( $message);135 $this->logger->error('Excepción en el procesamiento del pago: ' . $e->getMessage()); 132 136 133 137 return array( … … 135 139 'message' => 'Excepción al procesar el pago: ' . $e->getMessage() 136 140 ); 141 } finally { 142 $this->logger->cleanOrder(); 137 143 } 138 144 } … … 282 288 $returnUrl = $this->environment->get_return_url($order); 283 289 $name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(); 284 $email = $order->get_billing_email();285 $cell_phone = $order->get_billing_phone();286 290 287 291 $this->request_body_pay = ([ … … 292 296 'returnUrl' => $returnUrl, 293 297 'showSummary' => true, 294 'name' => $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(),295 'email' => $order->get_billing_email(),296 'cell_phone' => $order->get_billing_phone(),297 298 'reference1' => null, 298 299 'reference2' => [ 299 300 "Label" => [ 300 301 "Name" => $name, 301 "Email" => base64_encode($ email),302 "CellPhone" => base64_encode($ cell_phone)302 "Email" => base64_encode($order->get_billing_email()), 303 "CellPhone" => base64_encode($order->get_billing_phone()) 303 304 ], 304 305 "Commerce" => [ … … 316 317 private function get_trx_token(): ?string 317 318 { 318 $authorization = " {'Bearer'} {$this->get_token_auth_from_db()}";319 $authorization = "Bearer " . $this->get_token_auth_from_db(); 319 320 $request_headers = array('Content-Type' => 'application/json', 'Authorization' => $authorization); 320 321 $url = $this->get_pay_api_url() . 'trx-token/generate'; 321 322 $data = array('service' => '/cash-in/generate/payment-link/token'); 323 324 $this->logger->info('Enviando petición para generar token transaccional: ' . json_encode([ 325 'url' => $url, 326 'payload' => $data 327 ])); 322 328 323 329 $response = wp_remote_post($url, array('body' => wp_json_encode($data), 'headers' => $request_headers)); … … 326 332 $response_data = json_decode($response_body, true); 327 333 334 $this->logger->info('Respuesta en la generación de token transaccional: ' . json_encode([ 335 'response_code' => $response_code, 336 'response_data' => $response_data 337 ])); 338 328 339 if (is_wp_error($response)) { 329 $this->logger->error('Response data: ' . json_encode($response_data)); 340 $this->logger->error('Error en la petición de token transaccional: ' . json_encode([ 341 'error' => is_wp_error($response) ? $response->get_error_message() : '', 342 'response_data' => $response_data 343 ])); 330 344 throw new Exception('Error getting transaction token'); 331 345 } 332 346 333 347 if (!isset($response_data['data']['token'])) { 334 $this->logger->error('Token not found in response'); 348 $this->logger->error('Token no encontrado en la respuesta: ' . json_encode([ 349 'response_data' => $response_data 350 ])); 335 351 } 336 352 … … 347 363 $this->request_body_pay['reference1'] = $this->reference1; 348 364 349 $authorization = "{'Bearer'} {$this->get_token_auth_from_db()}"; 365 $this->logger->info('Iniciando creación de transacción: ' . json_encode([ 366 'reference1' => $this->reference1 367 ])); 368 369 $authorization = "Bearer " . $this->get_token_auth_from_db(); 350 370 $request_headers = [ 351 371 'Content-Type' => 'application/json', … … 354 374 ]; 355 375 376 $this->logger->info('Enviando petición de creación de transacción: ' . json_encode([ 377 'url' => $this->get_pay_api_url() . 'cash-in/generate/payment-link/token', 378 'payload' => $this->request_body_pay 379 ])); 380 356 381 $response = wp_remote_post( 357 382 $this->get_pay_api_url() . 'cash-in/generate/payment-link/token', … … 365 390 $url_return = null; 366 391 367 $this->logger->info('Response data: ' . json_encode($response_data)); 392 $this->logger->info('Respuesta de creación de transacción recibida: ' . json_encode([ 393 'response_code' => $response_code, 394 'response_body' => $response_body, 395 'response_data' => $response_data 396 ])); 368 397 369 398 if ($response_code >= 200 && $response_code < 300 && $response_status_code === '00' && is_array($response_data)) { … … 377 406 ); 378 407 } elseif ($response_code === 401) { 408 $this->logger->warning('Token inválido detectado, intentando renovar: ' . json_encode([ 409 'order_id' => $order_id, 410 'response_code' => $response_code 411 ])); 412 379 413 $this->delete_invalid_token(); 380 414 $this->register_transaction_log( … … 388 422 $this->update_store_token($this->token); 389 423 424 $this->logger->info('Token renovado exitosamente'); 390 425 throw new Exception('Invalid token. Please try again.'); 391 426 } else { -
refacil-pay/trunk/includes/logger.php
r3231483 r3288747 5 5 private $context; 6 6 private $logger; 7 private $orderNumber; 7 8 8 9 public function __construct($context = 'refacil_pay') … … 10 11 $this->context = $context; 11 12 $this->logger = new WC_Logger(); 13 $this->orderNumber = null; 14 } 15 16 public function setOrder($orderNumber) 17 { 18 $this->orderNumber = $orderNumber; 19 } 20 21 public function cleanOrder() 22 { 23 $this->orderNumber = null; 24 } 25 26 private function formatMessage($message) 27 { 28 $formattedMessage = $message; 29 30 if ($this->orderNumber !== null) { 31 $formattedMessage = '[' . $this->orderNumber . '] ' . $message; 32 } 33 34 return $formattedMessage; 12 35 } 13 36 14 37 public function info($message) 15 38 { 16 $this->logger->info($message, ['source' => $this->context]); 39 $formattedMessage = $this->formatMessage($message, $context); 40 $this->logger->info($formattedMessage, ['source' => $this->context]); 17 41 } 18 42 19 43 public function error($message) 20 44 { 21 $this->logger->error($message, ['source' => $this->context]); 45 $formattedMessage = $this->formatMessage($message); 46 $this->logger->error($formattedMessage, ['source' => $this->context]); 22 47 } 23 48 } -
refacil-pay/trunk/re-facil-gateway.php
r3278468 r3288747 3 3 Plugin Name: Refácil Pay 4 4 Description: Pasarela de pagos para Woocommerce. 5 Version: 1.0. 65 Version: 1.0.7 6 6 Author: Refácil Pay 7 7 Author URI: https://refacilpay.com/ -
refacil-pay/trunk/readme.txt
r3278455 r3288747 4 4 Requires at least: 4.0 5 5 Tested up to: 6.4.2 6 Stable tag: 1.0. 66 Stable tag: 1.0.7 7 7 Requires PHP: 7.0 8 8 License: GPL-2.0+ … … 82 82 83 83 == Changelog == 84 = 1.0.7 = 85 * Implementación de validación de datos en el checkout 86 * Mejora en el manejo de errores y mensajes de validación 87 * Optimización del proceso de checkout para mejor experiencia de usuario 88 * Actualización de dependencias y mejoras de seguridad 89 84 90 = 1.0.6 = 85 91 * Refactorización de la gestión de tokens para mejorar la seguridad y mantenibilidad … … 101 107 102 108 == Upgrade Notice == 103 = 1.0. 6=104 * Actualiza a esta versión para obtener mejoras en la seguridad del manejo de tokens, procesamiento de pagos más robusto y una mejor experiencia de usuario en el checkout.109 = 1.0.7 = 110 * Actualiza a esta versión para obtener mejoras en la validación de datos del checkout, manejo de errores más robusto y una experiencia de usuario optimizada en el proceso de pago.
Note: See TracChangeset
for help on using the changeset viewer.