/sdk-php

SDK en lenguaje PHP para integración de Pagopar con el sitio web del comercio

Primary LanguagePHP

IMPORTANTE

Este SDK está desfasado, por lo cual para implementar Pagopar aconsejamos hacerlo utilizando la API https://soporte.pagopar.com/portal/es/kb/articles/api-integracion-medios-pagos

Además de implementar vía API, podés echar un vistazo a nuestras soluciones tipo plugin para las plataformas Woocommerce, Prestashop y Shopify. Más información en https://soporte.pagopar.com/

SDK PHP Pagopar

Primeros pasos

1. Incluir la clase de Pagopar

Incluimos la clase de Pagopar que se encuentra en el archivo Pagopar.php.

    require 'Pagopar.php';

2. Usar una base de datos

Es necesario crear una base de datos MySQL o usar una ya existente antes de usar el SDK de Pagopar.

3. Inicializar la base de datos

Instanciamos la clase DBPagopar con los datos necesarios para inicializar la base de datos. El SDK automáticamente crea una tabla llamada transactions en la que se guardarán los pedidos. Los parámetros a ser pasados son todas cadenas: dbname (el nombre de la base de datos), dbuser (el usuario) y dbpass (la contraseña).

    $db = new DBPagopar( 'dbname' , 'dbuser' , 'dbpass' );

4. Elegir un nuevo id para un pedido

Debemos elegir un id para realizar un nuevo pedido o consultar una transacción realizada anteriormente. En ambos casos el id debe ser un entero mayor a cero.

En el caso de una nueva transacción, debemos elegir un valor superior al id del último pedido realizado.

Ejemplo de nueva transacción

Instanciar el pedido

Lo primero que hacemos es crear una variable, en este caso pedidoPagopar, e instanciamos la clase de Pagopar, pasandole como parámetro el id del nuevo pedido.

    $pedidoPagopar= new Pagopar( idNuevoPedido, $db );

Crear transacción de prueba

Para realizar una transacción de prueba podemos usar el método newTestPagoparTransaction que realiza un pedido de prueba con valores precargados.

    $pedidoPagopar= new newTestPagoparTransaction( idNuevoPedido, $db );

Así, para generar un nuevo pedido de prueba de manera sencilla tenemos que:

    require 'Pagopar.php';

    $db = new  DBPagopar( ’dbname ’ , ’dbuser ’ , ’dbpass ’ );
    /* Generar  nuevo  pedido */
    //Id  mayor  al Id del  ultimo  pedido , solo  para  pruebas
    $idNuevoPedido = nuevo_id;
    // Generamos  el  pedido
    $pedidoPagoPar = new  Pagopar($idNuevoPedido ,$db);
    $pedidoPagoPar ->newTestPagoparTransaction ();

Para nuestro ejemplo nos basta usar esta función, pero si se desea hacer una transacción con valores customizables se puede usar el método newPagoparTransaction.

Nueva transacción con valores personalizables

El siguiente código posee valores similares a los del método newTestPagoparTransaction, pero con algunas cadenas que deben ser reemplazadas por valores reales.

    require 'Pagopar.php';

    $db = new DBPagopar( 'dbname' , 'dbuser' , 'dbpass' );

    /*Generar nuevo pedido*/
    //Id mayor al Id del último pedido, solo para pruebas
    $idNuevoPedido = nuevo_id;
    //Generamos el pedido
    $pedidoPagoPar = new Pagopar($idNuevoPedido, $db);

    //Creamos el comprador
    $buyer = new BuyerPagopar();
    $buyer->name            = 'Juan Perez';
    $buyer->public_key      = 'public_key';
    $buyer->cityId          = 1;
    $buyer->tel             = '0972200046';
    $buyer->typeDoc         = 'CI';
    $buyer->doc             = '352221';
    $buyer->addr            = 'Mexico 840';
    $buyer->addRef          = 'alado de credicentro';
    $buyer->addrCoo         = '-25.2844638,-57.6480038';
    $buyer->ruc             = null;
    $buyer->socialReason    = null;
    //Agregamos el comprador
    $this->order->addPagoparBuyer($buyer);

    //Creamos los productos
    $item1 = new ItemPagopar();
    $item1->name                = "Válido 1 persona";
    $item1->qty                 = 1;
    $item1->price               = 10000;
    $item1->cityId              = 1;
    $item1->desc                = "producto";
    $item1->url_img             = "https://www.hendyla.com/images/lazo_logo.png";
    $item1->weight              = '0.1';
    $item1->category            = 3;
    $item1->sellerPhone         = '0985885487';
    $item1->sellerEmail         = 'correo_electrónico';
    $item1->sellerAddress       = 'lorep ipsum';
    $item1->sellerAddressRef    = '';
    $item1->sellerAddressCoo    = '-28.75438,-57.1580038';

    $item2 = new ItemPagopar();
    $item2->name                = "Heladera";
    $item2->qty                 = 1;
    $item2->price               = 785000;
    $item2->cityId              = 1;
    $item2->desc                = "producto";
    $item2->url_img             = "https://www.hendyla.com/images/lazo_logo.png";
    $item2->weight              = '5.0';
    $item2->category            = 3;
    $item2->sellerPhone         = '0985885487';
    $item2->sellerEmail         = 'correo_electrónico';
    $item2->sellerAddress       = 'lorep ipsum dolor';
    $item2->sellerAddressRef    = '';
    $item2->sellerAddressCoo    = '-28.75438,-57.1580038';

    //Agregamos los productos al pedido
    $pedidoPagoPar->order->addPagoparItem($item1);
    $pedidoPagoPar->order->addPagoparItem($item2);

    //Pasamos los parámetros para el pedido
    $pedidoPagoPar->order->publicKey = 'clave pública';
    $pedidoPagoPar->order->privateKey = 'clave privada';
    $pedidoPagoPar->order->typeOrder = 'VENTA-COMERCIO';
    $pedidoPagoPar->order->desc = 'Entrada Retiro';
    $pedidoPagoPar->order->periodOfDaysForPayment = 1;
    $pedidoPagoPar->order->periodOfHoursForPayment = 0;

    //Hacemos el pedido
    $pedidoPagoPar->newPagoparTransaction();

Consultar transacción

Para consultar un pedido realizado previamente debemos conocer el id del mismo. Una vez que lo tenemos, basta con llamar a getPagoparOrderStatus, la cual nos retorna un JSON con las indicaciones de la transacción.

    require 'Pagopar.php';

    $db = new DBPagopar('dbname','dbuser','dbpass');

    /*Consultar pedido*/
    $idPedido = id_pedido;
    $pedidoPagopar = new Pagopar($idPedido, $db);
    $pedidoPagopar->getPagoparOrderStatus($idPedido);