PHPackages                             tsukiro/payment-gateways-library - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. tsukiro/payment-gateways-library

ActiveLibrary[Payment Processing](/categories/payments)

tsukiro/payment-gateways-library
================================

Esta librería unifica y simplifica la implementación de las pasarelas de pago de mercado pago, webpay y flow dejandolas en un único marco de trabajo para su integración

1.2.3(4mo ago)010↓92.9%proprietaryPHPCI failing

Since Feb 19Pushed 4mo agoCompare

[ Source](https://github.com/tsukiro/payment-gateways-library)[ Packagist](https://packagist.org/packages/tsukiro/payment-gateways-library)[ RSS](/packages/tsukiro-payment-gateways-library/feed)WikiDiscussions main Synced today

READMEChangelog (8)Dependencies (8)Versions (10)Used By (0)

[![PHP Composer](https://github.com/tsukiro/payment-gateways-library/actions/workflows/php.yml/badge.svg)](https://github.com/tsukiro/payment-gateways-library/actions/workflows/php.yml)

Raion Payment Gateways Library
==============================

[](#raion-payment-gateways-library)

Librería PHP para integrar múltiples pasarelas de pago en Chile: Flow, Transbank/Webpay y MercadoPago.

🚀 Características
-----------------

[](#-características)

- ✅ Soporte para múltiples gateways: **Flow**, **Transbank/Webpay** y **MercadoPago**
- ✅ Interfaz unificada para todos los gateways
- ✅ **Configuración flexible**: mediante array o variables de entorno
- ✅ **Caché PSR-16**: Almacenamiento temporal automático de transacciones
- ✅ **Eventos PSR-14**: Sistema de eventos para hooks personalizados
- ✅ **TransactionManager**: Orquestación simplificada del flujo de pagos
- ✅ Fácil de usar y extender
- ✅ Compatible con PHP 8.0+

📦 Instalación
-------------

[](#-instalación)

```
composer require raion/payment-gateways-library
```

✨ Nuevo: Arquitectura con Caché y Eventos
-----------------------------------------

[](#-nuevo-arquitectura-con-caché-y-eventos)

La librería ahora soporta **PSR-16 (Simple Cache)** y **PSR-14 (Event Dispatcher)** para simplificar la integración y desacoplar la lógica de negocio.

### ¿Por qué usar esta arquitectura?

[](#por-qué-usar-esta-arquitectura)

**Flujo Tradicional**:

```
Controller → Gateway → Guardar en BD → Redirigir → Callback → Validar → Actualizar BD → Email
         └─ Mucho código repetitivo ─┘         └─ Lógica acoplada ─┘

```

**Nuevo Flujo con PSR**:

```
Controller → TransactionManager → [Caché] → [Evento: TransactionCreated]
                                                    └─→ Listener: Guardar en BD
                                                    └─→ Listener: Log
Callback → TransactionManager → [Evento: TransactionConfirmed]
                                      └─→ Listener: Actualizar orden
                                      └─→ Listener: Enviar email
                                      └─→ Listener: Procesar pedido

```

### Ejemplo Rápido

[](#ejemplo-rápido)

```
use Raion\Gateways\Selector;
use Raion\Gateways\Models\Transaction;
use Raion\Gateways\Events\TransactionConfirmedEvent;

// 1. Crear TransactionManager con caché y eventos
$manager = Selector::CreateTransactionManager($cache, $eventDispatcher);

// 2. Registrar listener para confirmación
$eventDispatcher->addListener(TransactionConfirmedEvent::class, function($event) {
    // Actualizar orden en BD, enviar email, etc.
    OrderProcessor::complete($event->getOrderId());
});

// 3. Crear transacción (automáticamente cachea y dispara evento)
$response = $manager->createTransaction($gateway, $transaction);

// 4. En callback: confirmar (automáticamente dispara eventos)
$manager->confirmTransaction($gateway, $transaction, $callbackData);
```

**Beneficios**:

- ✅ **Menos código**: El manager maneja caché y eventos automáticamente
- ✅ **Más testeable**: Fácil de mockear caché y eventos
- ✅ **Desacoplado**: Lógica de negocio en listeners separados
- ✅ **Retrocompatible**: La API anterior sigue funcionando

📚 **Documentación completa**: [USAGE\_PSR.md](USAGE_PSR.md)
💻 **Ejemplo funcional**: [exampleWithPSR.php](exampleWithPSR.php)

🔧 Configuración
---------------

[](#-configuración)

> **📚 Documentación completa**: Para una guía detallada sobre el uso de ConfigKeys, consulta [CONFIG\_KEYS.md](CONFIG_KEYS.md)

### Opción 1: Configuración mediante Array con ConfigKeys (Recomendado)

[](#opción-1-configuración-mediante-array-con-configkeys-recomendado)

```
