PayU ofrece un SDK que permite conectarte a nuestra API de manera más sencilla.

Como cualquier integración API, podrás personalizar tu checkout de acuerdo a las necesidades de tu negocio y el cliente permanecerá en tu sitio web durante la compra.
developer
 
 

Funcionalidades disponibles para la integración SDK

 
Pagos

Pagos

Consultas

Consultas

Pagos recurrentes

Pagos recurrentes

Tokenización

Tokenización

Reembolsos

Reembolsos

 
Configuraciones iniciales por tipo de integración  
 
Para realizar el proceso de conexión con el API, el SDK depende de la librería HttpClient de apache, que a su vez depende de las librerías HttpCore, CommonsLoggin y CommonsCodec. En general, para poder hacer uso del SDK se deben tener incluidas en el classpath las siguientes librerías:
  1. HttpClient-4.2.5.jar
  2. HttpCore-4.2.4.jar
  3. Commons-loggin-1.1.1.jar
  4. Commons-codec-1.6.jar
  5. payu-java-sdk-1.1.4.jar
 
Descargar SDK Java 1.1.4

Antes de realizar cualquier operación con el SDK, se deben asignar ciertos valores iniciales a la clase PayU, los cuales son comunes para todas las operaciones soportadas por el SDK y se configuran dependiendo del comercio. A continuación se presenta un ejemplo de la configuración de esta clase y posteriormente se relacionan los valores en una tabla:

Nombre del parámetro Tamaño Tipo Requerido Descripción
language 2 Language SI El lenguaje usado para los mensajes de error del sistema y en los correos electrónicos que se envían al comprador y vendedor. Se soportan actualmente en (Inglés), es (Español) y pt (Portugués).
isTest boolean SI "true" si se trata de una petición de prueba, "false" de lo contrario. Dependiendo del tipo de transacción u operación, el comportamiento varía según el valor de este campo.
apiLogin Mín: 12 Máx: 32 String SI El apiLogin del comercio.
apiKey Mín: 6 Máx: 32 String SI El apiKey o llave del comercio.
merchantId String NO* El identificador del comercio, es usado generando las firmas para verificar las transacciones de pagos. *Es obligatorio si se desea que se verifique la transacción (a menos que se envíe la firma)
paymentsUrl Mín: 1 String NO La dirección web de la página a la que se va a enviar las peticiones relacionadas con los pagos. Por defecto toma la url de producción.
reportsUrl Mín: 1 String NO La dirección web de la página a la que se va a enviar las peticiones relacionadas con los reportes. Por defecto toma la url de producción.
 
 
Ejemplo

PayU.apiKey = "xxxxxxxxxxxx"; //Ingresa aquí tu apiKey.
PayU.apiLogin = "xxxxxxxxxxxx"; //Ingresa aquí tu apiLogin.
PayU.language = Language.en; //Ingresa aquí el idioma que prefieras.
PayU.isTest = false; //Dejarlo verdadero cuando sean pruebas.
LoggerUtil.setLogLevel(Level.ALL); //Incluirlo únicamente si desea ver toda la traza del log; si solo se desea ver la respuesta, se puede eliminar.
PayU.paymentsUrl = "https://api.payulatam.com/payments-api/"; //Incluirlo únicamente si desea probar en un servidor de pagos específico, e indicar la ruta del mismo.
PayU.reportsUrl = "https://api.payulatam.com/reports-api/"; //Incluirlo únicamente si desea probar en un servidor de reportes específico, e indicar la ruta del mismo.
 
Para la ejecución de cada una de las operaciones provistas por el SDK de PayU, se debe enviar como argumento un Mapa de parámetros al método correspondiente, que contiene toda la información de la transacción a procesar.
Map<String, String>  parameters = new HashMap <String, String> ();

parameters.put(PayU.PARAMETERS.TRANSACTION_ID, transactionId);

parameters.put(PayU.PARAMETERS.ORDER_ID, orderId.toString());

Para facilitar su uso, se proporcionan una serie de constantes en la interfaz PayU.PARAMETERS, que contienen los nombres de los parámetros utilizados en los métodos del SDK y los cuales serán referenciados en cada operación disponible del manual.

Para realizar el proceso de conexión con el API, el SDK se puede ejecutar en máquinas que tengan versiones mayores o iguales a 5.2.1 de PHP.  
Adicionalmente se requieren las siguientes extensiones de PHP en tu servidor:
  1. curl
  2. xml
  3. mbstring
  4. json
 
Descargar SDK PHP 4.5.6
Configuración inicial: 
Para tener acceso a las funcionalidades de la SDK se debe incluir la clase PayU ubicada en [ruta/a/payu-php-sdk]/lib/PayU.php.  
<?php
require_once '[ruta/payu-php-sdk]/lib/PayU.php';
...
?>
 
Antes de realizar cualquier operación con el SDK PHP, se deben asignar ciertos valores iniciales a la clase PayU, los cuales son comunes para todas las operaciones soportadas por el SDK y se configuran dependiendo del comercio. A continuación se presenta un ejemplo de la configuración de esta clase y posteriormente se relacionan los valores en una tabla:  
<?php
PayU::$apiKey = "xxxxxxxxxxxx"; //Ingrese aquí su propio apiKey.
PayU::$apiLogin = "xxxxxxxxxxxx"; //Ingrese aquí su propio apiLogin.
PayU::$merchantId = "1"; //Ingrese aquí su Id de Comercio.
PayU::$language = SupportedLanguages::ES; //Seleccione el idioma.
PayU::$isTest = false; //Dejarlo True cuando sean pruebas.
...
?>
 
Nombre del parámetro Tamaño Tipo Requerido Descripción
PayU::$language 2 Language SI El lenguaje usado para los mensajes de error del sistema y en los correos electrónicos que se envían al comprador y vendedor. Se soportan actualmente en (Inglés), es (Español) y pt (Portugués).
PayU::$isTest boolean SI “true” si se trata de una petición de prueba, “false” de lo contrario. Dependiendo del tipo de transacción u operación, el comportamiento varía según el valor de este campo.
PayU::$apiLogin Mín: 12

Máx: 32

String SI El apiLogin del comercio.
PayU::$apiKey Mín: 6

Máx: 32

String SI El apiKey o llave del comercio.
PayU::$merchantId String NO* El identificador del comercio, es usado generando las firmas para verificar las transacciones de pagos. *Es obligatorio si se desea que se verifique la transacción (a menos que se envíe la firma)
 
Adicionalmente, se debe configurar el API para que dirija las peticiones a la URL correspondientes utilizando la clase Environment como se muestra a continuación:  
<?php
// URL de Pagos
Environment::setPaymentsCustomUrl("https://sandbox.api.payulatam.com/payments-api/4.0/service.cgi");
// URL de Consultas
Environment::setReportsCustomUrl("https://sandbox.api.payulatam.com/reports-api/4.0/service.cgi");
// URL de Suscripciones para Pagos Recurrentes
Environment::setSubscriptionsCustomUrl("https://sandbox.api.payulatam.com/payments-api/rest/v4.3/");
...
?>
 
 
Tener en cuenta:
  1. Debes tener una cuenta activa en PayU.
  2. Debes instalar el certificado SSL válido en tu servidor y tu sitio debe estar en capacidad de realizar conexiones SSL por lo cual la máquina virtual debe contar con las extensiones de seguridad apropiadas.
  3. Temporalmente NO utilices certificados de seguridad de curva elíptica o aquellos que cuenten con la suite de cifrado TLS_ECDHE_ECDSA_WITH_RC4_128_SHA en tus peticiones de pago.
  4. Debes contar con lenguajes de servidor o CGI tales como Java, C#, VB, PHP, etc.
  5. Debes estar en capacidad de almacenar de forma segura tus credenciales de autenticación (API Key y API Login).
  6. La codificación para los mensajes debe ser UTF-8.
  7. Las fechas con hora tienen el formato yyyy-MM-ddTHH:mm:ss, el formato de la hora es 24 horas. Ej. 2015-08-22T21:35:12.
  8. En condiciones normales la conexión garantiza tiempos de respuesta de 3 segundos en promedio, si hay una situación anormal el tiempo máximo de respuesta será de 1 minuto. Es altamente recomendable que configures los “timeouts” cuando te conectes con PayU.
  9. Es importante validar la longitud y los números de tarjetas de crédito por franquicia junto con los códigos de seguridad.