/home/suroeste/public_html/payments.transportessuroeste.com/src/Services
NameSizeModeActions
ClientDatabaseService.php44440644editdlrm
EncryptionService.php38670644editdlrm
LogService.php96780644editdlrm
PaymentService.php283570644editdlrm
Edit: /home/suroeste/public_html/payments.transportessuroeste.com/src/Services/ClientDatabaseService.php (4444B)
pdo !== null) { return; } if (empty(CLIENT_DB_CONFIG['database']) || empty(CLIENT_DB_CONFIG['username'])) { throw new \RuntimeException('Configuración de BD del cliente incompleta. Verifique CLIENT_DB_* en .env'); } try { $dsn = sprintf( 'mysql:host=%s;port=%d;dbname=%s;charset=%s', CLIENT_DB_CONFIG['host'], CLIENT_DB_CONFIG['port'], CLIENT_DB_CONFIG['database'], CLIENT_DB_CONFIG['charset'] ); $this->pdo = new PDO( $dsn, CLIENT_DB_CONFIG['username'], CLIENT_DB_CONFIG['password'], CLIENT_DB_CONFIG['options'] ); } catch (PDOException $e) { LogService::error('client_db', 'Error conectando a BD del cliente', [ 'error' => $e->getMessage(), 'host' => CLIENT_DB_CONFIG['host'], 'database' => CLIENT_DB_CONFIG['database'] ]); throw new \RuntimeException('No se pudo conectar a la BD del cliente: ' . $e->getMessage()); } } /** * Actualizar el estado de pago en la tabla reservas_clientes * * Busca el registro por idreserva_cliente (que corresponde al ticket_reference * recibido desde la API) y actualiza el campo estadopago con el resultado * de la transacción. * * @param string $ticketReference El ticket_reference que corresponde a idreserva_cliente * @param string $paymentStatus El estado del pago (approved, rejected, pending, failed, cancelled) * @return bool True si se actualizó al menos un registro, false si no se encontró */ public function updatePaymentStatus(string $ticketReference, string $paymentStatus): bool { try { $this->connect(); $stmt = $this->pdo->prepare( "UPDATE reservas_clientes SET estadopago = :estado WHERE idpago = :id" ); $stmt->bindValue(':estado', $paymentStatus, PDO::PARAM_STR); $stmt->bindValue(':id', $ticketReference, PDO::PARAM_STR); $stmt->execute(); $rowsAffected = $stmt->rowCount(); LogService::info('client_db', 'Estado de pago actualizado en BD del cliente', [ 'ticket_reference' => $ticketReference, 'estadopago' => $paymentStatus, 'rows_affected' => $rowsAffected ]); return $rowsAffected > 0; } catch (PDOException $e) { LogService::error('client_db', 'Error actualizando estado en BD del cliente', [ 'ticket_reference' => $ticketReference, 'payment_status' => $paymentStatus, 'error' => $e->getMessage() ]); return false; } catch (\RuntimeException $e) { LogService::error('client_db', 'Error de conexión BD del cliente', [ 'ticket_reference' => $ticketReference, 'error' => $e->getMessage() ]); return false; } } }