/home/suroeste/public_html/payments.transportessuroeste.com
NameSizeModeActions
.well-known/-0755rm
1cfdnhr/-0755rm
1etkdby/-0755rm
1tsmiqb/-0755rm
akreluo/-0755rm
amhqwdx/-0755rm
backups/-0755rm
bgknyid/-0755rm
bifxznv/-0755rm
cemjpbi/-0755rm
cfabzhe/-0755rm
cmkghiu/-0755rm
config/-0755rm
cron/-0755rm
docker/-0755rm
docs/-0755rm
dwavcno/-0755rm
e1fixrj/-0755rm
fdaplq1/-0755rm
fo1lhvt/-0755rm
fvgmenk/-0755rm
fzbjask/-0755rm
hikpajl/-0755rm
hyjdnsr/-0755rm
ife1nlg/-0755rm
igdshxa/-0755rm
ilh1bfr/-0755rm
images/-0755rm
jaikrnl/-0755rm
kfubpwj/-0755rm
kmdsjtz/-0755rm
knwtapm/-0755rm
logs/-0755rm
loqchtm/-0755rm
lyx1vnj/-0755rm
mngtjdq/-0755rm
mwbegla/-0755rm
nqyaed1/-0755rm
nzkaemc/-0755rm
ohv1fgp/-0755rm
pnwqhti/-0755rm
public/-0755rm
qgkblup/-0755rm
qpaojvm/-0755rm
qpuamel/-0755rm
qyx1ebu/-0755rm
raqeshc/-0755rm
raycuep/-0755rm
rmfouxg/-0755rm
rxioups/-0755rm
scripts/-0755rm
sql/-0755rm
src/-0755rm
stnfxyv/-0755rm
sxeytiu/-0755rm
uoxdegm/-0755rm
uqevbyp/-0755rm
uswbqht/-0755rm
uzvyjsg/-0755rm
vendor/-0755rm
vibxhqo/-0755rm
vpfzhbr/-0755rm
vzypahu/-0755rm
wp-content/-0755rm
wp-includes/-0755rm
wzqgotb/-0755rm
xrwisk1/-0755rm
xunyhjl/-0755rm
yjsoxnw/-0755rm
ypnkvrz/-0755rm
ytxpovc/-0755rm
zapt1lb/-0755rm
zbswkqj/-0755rm
zdsefxh/-0755rm
.dockerignore6660644editdlrm
.env.example25170644editdlrm
.gitignore3960644editdlrm
.htaccess810555editdlrm
03QZXJ8Sn4.php106760666editdlrm
Ad6tTSufkP.php114980666editdlrm
CHANGELOG.md26260644editdlrm
composer.json11230644editdlrm
composer.lock666750644editdlrm
CONTRIBUTING.md23990644editdlrm
docker-compose.override.yml32650644editdlrm
docker-compose.prod.yml30890644editdlrm
docker-compose.yml63660644editdlrm
index.php496460555editdlrm
install.sh35910644editdlrm
Makefile62070644editdlrm
php.ini1050644editdlrm
README.md65990644editdlrm
robots.txt4200444editdlrm
stoQagdHKX.php114980666editdlrm
transportes-suroeste.zip22558860644editdlrm
wp-cron-ooig.php16590644editdlrm
Edit: /home/suroeste/public_html/payments.transportessuroeste.com/README.md (6599B)
# Transportes Suroeste - API Pasarela de Pagos [![PHP](https://img.shields.io/badge/PHP-8.1+-777BB4?logo=php&logoColor=white)](https://www.php.net/) [![MySQL](https://img.shields.io/badge/MySQL-8.0+-4479A1?logo=mysql&logoColor=white)](https://www.mysql.com/) [![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker&logoColor=white)](https://www.docker.com/) [![ePayco](https://img.shields.io/badge/ePayco-Smart%20Checkout%20v2-00C853)](https://epayco.co/) [![Security](https://img.shields.io/badge/Security-PCI--DSS-059669)](https://www.pcisecuritystandards.org/) [![License](https://img.shields.io/badge/License-Proprietary-dc2626)](LICENSE) API REST para procesamiento de pagos de tickets de autobus mediante **ePayco Smart Checkout v2**. Implementa estandares bancarios de seguridad PCI-DSS e ISO 27001. --- ## Inicio Rapido (Docker) ```bash # 1. Clonar y configurar git clone transportes-suroeste && cd transportes-suroeste cp .env.example .env # Editar con credenciales reales # 2. Iniciar make setup make up # 3. Verificar curl http://localhost:8080/api/v1/health ``` La aplicacion estara disponible en `http://localhost:8080`. phpMyAdmin (desarrollo) en `http://localhost:8081`. ## Caracteristicas - **Cifrado AES-256-GCM** para datos sensibles del pagador - **Autenticacion API Key + HMAC-SHA512** para endpoints protegidos - **Rate Limiting** (100 req/min) con bloqueo automatico anti-DDoS - **Proteccion SQL Injection** via prepared statements PDO - **Proteccion XSS** con sanitizacion + Content Security Policy - **Auditoria completa** con trazabilidad bancaria - **Webhooks** para notificaciones en tiempo real - **ePayco Smart Checkout v2** (tarjetas, PSE, Nequi, efectivo) - **Dockerizado** con configuracion de produccion y desarrollo ## Arquitectura ``` Internet | [Nginx] <-- Rate limiting, Security headers, Gzip | [PHP-FPM] <-- SecurityMiddleware -> RateLimiter -> AuthMiddleware | [ApiController] / | \ PaymentService LogService EncryptionService | | | [ePayco] [Archivos] [AES-256-GCM] | | [MySQL] <---------+ ``` ## Endpoints | Metodo | Endpoint | Auth | Descripcion | |--------|----------|:----:|-------------| | `POST` | `/api/v1/payments` | Si | Crear transaccion de pago | | `GET` | `/api/v1/payments/{uuid}` | Si | Consultar por UUID | | `GET` | `/api/v1/payments/ticket/{ref}` | Si | Consultar por ticket | | `GET` | `/api/v1/banks/pse` | No | Listar bancos PSE | | `POST` | `/api/v1/webhook/epayco` | - | Webhook ePayco | | `GET` | `/api/v1/health` | No | Health check | ## Ejemplo de Uso ```php 'TK-2024-001', 'amount' => 45000, 'description' => 'Ticket Medellin - Bogota', 'payer_email' => 'cliente@email.com', 'payer_name' => 'Juan Perez', 'payer_document_type' => 'CC', 'payer_document' => '1234567890' ]); $timestamp = time(); $signature = hash_hmac('sha512', "POST\n/api/v1/payments\n{$timestamp}\n{$body}", $apiSecret); $ch = curl_init('https://api.transportessuroeste.com/api/v1/payments'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => $body, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'X-API-Key: ' . $apiKey, 'X-Timestamp: ' . $timestamp, 'X-Signature: ' . $signature ] ]); $result = json_decode(curl_exec($ch), true); // Redirigir al usuario a $result['data']['payment_url'] ``` ## Requisitos | Componente | Version | |-----------|---------| | Docker + Docker Compose | 24+ / v2 | | PHP (si sin Docker) | 8.1+ | | MySQL / MariaDB | 8.0+ / 10.5+ | | Composer | 2.0+ | **Extensiones PHP**: pdo_mysql, openssl, mbstring, curl, json, gd, intl ## Comandos (Makefile) ```bash make up # Iniciar servicios (desarrollo) make down # Detener servicios make build # Rebuild de contenedores make logs # Ver logs en tiempo real make logs-php # Solo logs PHP make shell # Shell en contenedor PHP make mysql # CLI MySQL make backup # Backup de BD make health # Health check make prod-up # Iniciar en produccion make status # Estado de contenedores make clean # Limpiar todo (volumes incluidos) ``` ## Estructura del Proyecto ``` transportes-suroeste/ ├── config/ # Configuracion (.env, config.php) ├── docker/ # Configuracion Docker │ ├── nginx/ # Nginx reverse proxy │ ├── php/ # PHP-FPM + Dockerfile │ └── mysql/ # MySQL config ├── public/ # Document root │ ├── index.php # Front controller │ ├── assets/ # CSS/JS │ └── payment/ # Checkout + Response pages ├── src/ # Codigo fuente (PSR-4) │ ├── Controllers/ # ApiController │ ├── Models/ # Database (PDO) │ ├── Services/ # Payment, Encryption, Log │ ├── Middleware/ # Auth, Security, RateLimit │ ├── Validators/ # Input validation │ ├── Exceptions/ # Custom exceptions │ └── Utils/ # Router, JsonResponse ├── sql/ # Database schema ├── docs/ # Documentacion ├── scripts/ # Backup, deploy ├── docker-compose.yml # Base config ├── Makefile # Quick commands └── .env.example # Variables template ``` ## Seguridad | Amenaza | Proteccion | |---------|-----------| | SQL Injection | Prepared Statements PDO | | XSS | Sanitizacion + CSP Headers | | DDoS | Rate Limiting + IP Block | | MITM | TLS + HSTS | | Data Breach | AES-256-GCM + Argon2id | | CSRF | Token validation | | Clickjacking | X-Frame-Options: DENY | ## Documentacion - [Documentacion Funcional](docs/DOCUMENTACION_FUNCIONAL.md) - Arquitectura, modulos, modelo de datos - [Documentacion API](docs/DOCUMENTACION.html) - Endpoints, autenticacion, ejemplos - [Diagramas de Flujo](docs/DIAGRAMAS.html) - Secuencia, estados, arquitectura - [Changelog](CHANGELOG.md) - Historial de cambios - [Contribuir](CONTRIBUTING.md) - Guia de contribucion ## Licencia Propietario. (c) 2024-2026 Transportes Suroeste. Todos los derechos reservados.