krugerdavid/laravel-pagopar

Laravel integration for Pagopar payment gateway

Maintainers

Package info

github.com/krugerdavid/laravel-pagopar

pkg:composer/krugerdavid/laravel-pagopar

Transparency log

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 7

Open Issues: 1

1.1.0 2026-07-02 13:58 UTC

This package is auto-updated.

Last update: 2026-07-02 13:58:44 UTC


README

Latest Version Total Downloads License PHP Version

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

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