# SDK PHP Pagopar ## Primeros pasos #### 1. Incluir la clase de Pagopar Incluimos la clase de Pagopar que se encuentra en el archivo `Pagopar.php`. ```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). ```php $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. ```php $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. ```php $pedidoPagopar= new newTestPagoparTransaction( idNuevoPedido, $db ); ``` Así, para generar un nuevo pedido de prueba de manera sencilla tenemos que: ```php 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. ```php 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. ```php require 'Pagopar.php'; $db = new DBPagopar('dbname','dbuser','dbpass'); /*Consultar pedido*/ $idPedido = id_pedido; $pedidoPagopar = new Pagopar($idPedido, $db); $pedidoPagopar->getPagoparOrderStatus($idPedido); ```