DEV Community

loading...
TepuiLabsDEV

Nuestro paquete para Laravel para procesar pagos con PayPal y Mercadopago fue actualizado

ángel
・2 min read

Alt Text

Recientemente hicimos una actualización importante en uno de nuestros paquetes.

Ya hablamos de el en un post anterior

Qué es lo nuevo?

Pues básicamente re escribimos un poco el código para permitir recibir como parámetros la información que necesita la pasarela para funcionar.

Alt Text

Bueno, les explico:

Antes teníamos un archivo de configuración que era más o menos esto:

return [

    'mercadopago' => [
        'base_uri'      => env('MERCADOPAGO_BASE_URI'),
        'key'           => env('MERCADOPAGO_KEY'),
        'secret'        => env('MERCADOPAGO_SECRET'),
        'base_currency' => env('MERCADOPAGO_BASE_CURRENCY'),
        'class'         => \Tepuilabs\PaymentProcessors\Services\MercadoPagoService::class,
    ],

    'paypal' => [
        'base_uri'      => env('PAYPAL_BASE_URI'),
        'client_id'     => env('PAYPAL_CLIENT_ID'),
        'client_secret' => env('PAYPAL_CLIENT_SECRET'),
        'return_url'    => env('PAYPAL_RETURN_URL'),
        'cancel_url'    => env('PAYPAL_CANCEL_URL'),
        'class'         => \Tepuilabs\PaymentProcessors\Services\PayPalService::class,
    ],
];

Enter fullscreen mode Exit fullscreen mode

Y haciamos esto con cada pasarela:

// usa el facade
use Tepuilabs\PaymentProcessors\Facades\PaymentProcessors;

// luego crea la instancia de la clase a usar
$mercadopago = PaymentProcessors::resolveService('mercadopago');
$paypal = PaymentProcessors::resolveService('paypal');
Enter fullscreen mode Exit fullscreen mode

Y pues ya no lo vamos a trabajar de esa forma, ahora el archivo de configuración solo tiene esto:

<?php

return [

    'mercadopago' => [
        'class' => \Tepuilabs\PaymentProcessors\Services\MercadoPagoService::class,
    ],

    'paypal' => [
        'class' => \Tepuilabs\PaymentProcessors\Services\PayPalService::class,
    ],

];
Enter fullscreen mode Exit fullscreen mode

Y la forma de usarlo será esta:

// usa el facade
use Tepuilabs\PaymentProcessors\Facades\PaymentProcessors;

// luego crea la instancia de la clase a usar
$params = [
    'base_uri' => 'https://api.mercadopago.com',
    'key' => '',
    'secret' => '',
    'base_currency' => '',
];

$mercadopago = PaymentProcessors::resolveService('mercadopago', $params);


$params = [
    'base_uri' => 'https://api.sandbox.paypal.com',
    'client_id' => '',
    'client_secret' => '',
    'return_url' => '',
    'cancel_url' => ''
];

$paypal = PaymentProcessors::resolveService('paypal', $params);

Enter fullscreen mode Exit fullscreen mode

Y todo el proceso seguirá igual.

Discussion (0)