laravel-pagopar maintained by krugerdavid
Pagopar for Laravel
Laravel integration for Pagopar payment gateway. Pagopar ofrece múltiples medios de pago: transferencia bancaria, billeteras, tarjetas y más.
Why this package exists
Pagopar es una pasarela de pagos muy usada en Paraguay. Este paquete encapsula la API de iniciar transacción, consultar estado y verificar webhooks en una interfaz Laravel: Facade, Manager inyectable, DTOs tipados (PagoparBuyer, PagoparItem, PagoparPaymentRequest) y manejo de errores con excepciones. Evita duplicar lógica de tokens SHA1 y estructura de requests.
Requirements
- PHP 8.1+ (PHP 8.3+ requerido para Laravel 13)
- Laravel 10, 11, 12 o 13
Installation
composer require krugerdavid/laravel-pagopar
Configuration
Publicar la config:
php artisan vendor:publish --tag=pagopar-config
Variables de entorno (.env):
PAGOPAR_PUBLIC_KEY=your_public_token
PAGOPAR_PRIVATE_KEY=your_private_token
PAGOPAR_URL=https://api.pagopar.com
PAGOPAR_TIMEOUT=30
Usage
Crear un pago
use KrugerDavid\Pagopar\Facades\Pagopar;
use KrugerDavid\Pagopar\DTOs\PagoparBuyer;
use KrugerDavid\Pagopar\DTOs\PagoparItem;
use KrugerDavid\Pagopar\DTOs\PagoparPaymentRequest;
$buyer = new PagoparBuyer(
name: 'Juan Perez',
email: 'juan@example.com',
document: '1234567',
phone: '+595981123456'
);
$items = [
new PagoparItem(
name: 'Producto de Prueba',
price: 10000,
quantity: 1
)
];
$request = new PagoparPaymentRequest(
orderId: 'ORDER-123',
buyer: $buyer,
items: $items,
maxPaymentDate: now()->addDays(2)->format('Y-m-d H:i:s'),
description: 'Descripción del pedido'
);
$response = Pagopar::createPayment($request);
if ($response['hash']) {
$checkoutUrl = Pagopar::getCheckoutUrl($response['hash']);
return redirect($checkoutUrl);
}
Consultar estado del pedido
$status = Pagopar::getOrderStatus($hash);
if (!empty($status) && $status[0]['pagado']) {
// El pedido ha sido pagado
}
Verificar token del webhook
public function handleWebhook(Request $request)
{
$hash = $request->input('resultado.0.hash_pedido');
$token = $request->input('resultado.0.token');
if (Pagopar::verifyWebhookToken($hash, $token)) {
// Token válido, procesar el pago
}
}
Related packages
- laravel-bancard — Bancard VPOS (tarjetas de crédito/débito)
- laravel-bancard-qr — Bancard QR (pagos con código QR)
Used in Paraguay / production-ready
Este paquete está en uso en producción en Paraguay, incluyendo portales de municipalidades y comercios. Pagopar es una de las pasarelas más utilizadas para pagos con transferencia y billeteras en el país.
Security
If you discover any security related issues, please email david.kruger@duplaa.com instead of using the issue tracker.
Credits
License
MIT