Integración SDK

El SDK (Software Development Kit) de PayU provee una solución simple para integraciones complejas.

De forma similar a cualquier integración API, puedes personalizar tu checkout de acuerdo con las necesidades de tu negocio y el cliente permanece en tu página web durante la compra y el procedimiento de pago. Para integrar esta opción, debes tener una cuenta de PayU empresarial y habilidades de programación avanzadas.

Accede a múltiples métodos de pago (varía por país) incluyendo tarjetas de crédito, transferencias bancarias y pagos en efectivo.

API integration

Configuraciones iniciales

PayU te permite integrarte con la pasarela de pagos transaccional, las herramientas de pago disponibles y las consultas desarrollando un cliente HTTPS para enviar la información de la transacción a través de SSL. Es muy importante que los datos sensibles de la transacción como el número de la tarjeta de crédito, la fecha de expiración de la misma y demás, no sean almacenados. Recomendamos que sigas las mejores prácticas de PCI DSS (Payment Card Industry Data Security Standard).

Java

Para integrate con el API, el SDK depende de la librería de Apache HttpClient que a su vez depende de las librerías HttpCore, CommonsLoggin y CommonsCodec.

En general, necesitas las siguientes librerías en tu classpath:

Descargar el SDK Java 1.5.0

Antes de realizar cualquier operación con el SDK, necesitas asignar algunos valores a la clase PayU, los cuales aplican a todas las operaciones SDK y deben ser configurados con tu información comercial. La siguiente tabla muestra los valores que necesitas configurar.

Nombre del parámetro Tamaño Tipo Obligatorio Descripción
language 2 Language Idioma utilizado para mensajes de error en ell sistema y correos electrónicos enviados entre el comprado y el vendedor. Actualmente se soporta en en (inglés), es (español) y pt (portugués).
isTest boolean Asigna true si es una petición de prueba, Si no, asigna false. Dependiendo del tipo de transacción u operación, el valor de este campo puede afectar el comportamiento.
apiLogin Min:12 Max:32 String Tu API Login. Cómo obtengo mi API Login
apiKey Min:6 Max:32 String Tu API Key. Cómo obtengo mi API Key
merchantId String No Identificador del comercio, es utilizado para generar las firmas para verificar las transacciones de pago.
Este parámetro es obligatorio a menos que envíes la firma.
paymentsUrl Min:1 String No URL de lla página a donde vas a enviar las peticiones relacionadas a pagos. Por defecto, este parámetro toma la URL de producción.
reportsUrl Min:1 String No URL de lla página a donde vas a enviar las peticiones relacionadas a reportes. Por defecto, este parámetro toma la URL de producción.

Ejemplo

PayU.apiKey = "xxxxxxxxxxxx"; // Ingresa tu API key aquí
PayU.apiLogin = "xxxxxxxxxxxx"; // Ingresa tu API login aquí
PayU.language = Language.en; // Ingresa aquí el idioma
PayU.isTest = false; // asigna true si estás en modo pruebas
LoggerUtil.setLogLevel(Level.ALL); // inclúyelo solo si quieres ver a traza del log completa. Si no, puedes removerlo.
PayU.paymentsUrl = "https://api.payulatam.com/payments-api/"; // inclúyelo si quieres probar en un servidor de pagos específico y asigna su URL.
PayU.reportsUrl = "https://api.payulatam.com/reports-api/"; // inclúyelo si quieres probar en un servidor de reportes específico y asigna su URL.

Para la ejecución de cada una de las operaciones provistas por el SDK de PayU, debes enviar un Mapa de parámetros al método correspondiente como argumento, este 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.

PHP

Para integrarte con el API, el SDK puede ser ejecutado en máquinas con PHP versión igual o superior a 5.2.1. Además, se necesitan las siguientes extensiones PHP en tu servidor:

  • curl
  • xml
  • mbstring
  • json

Descargar el SDK PHP 4.5.8

Para tener acceso al las funcionalidades de SDK, necesitas incluir la clase PayU ubicada en [PayU-php-sdk-Path]/lib/PayU.php.

<?php
require_once '[PayU-php-sdk-Path]/lib/PayU.php';
...
?>

Antes de realizar cualquier operación con el SDK, necesitas asignar algunos valores a la clase PayU, los cuales aplican a todas las operaciones SDK y deben ser configurados con tu información comercial. La siguiente tabla muestra los valores que necesitas configurar.

Nombre del parámetro Tamaño Tipo Obligatorio Descripción
PayU::$language 2 Language Idioma utilizado para mensajes de error en ell sistema y correos electrónicos enviados entre el comprado y el vendedor. Actualmente se soporta en en (inglés), es (español) and pt (portugués).
PayU::$isTest boolean Asigna true si es una petición de prueba, Si no, asigna false. Dependiendo del tipo de transacción u operación, el valor de este campo puede afectar el comportamiento.
PayU::$apiLogin Min:12 Max:32 String Tu API Login. Cómo obtengo mi API Login
PayU::$apiKey Min:6 Max:32 String Tu API Key. Cómo obtengo mi API Key
PayU::$merchantId String No Identificador del comercio, es utilizado para generar las firmas para verificar las transacciones de pago.
Este parámetro es obligatorio a menos que envíes la firma.

Ejemplo

<?php
PayU::$apiKey = "xxxxxxxxxxxx"; // Ingresa tu llave API aquí
PayU::$apiLogin = "xxxxxxxxxxxx"; // Ingresa tu API login aquí
PayU::$merchantId = "1"; // Enter your Merchant Id here
PayU::$language = SupportedLanguages::ES; // Ingresa aquí el idioma
PayU::$isTest = false; // asigna true si estás en modo pruebas
...
?>

Además, necesitas configurar el API para redirigir tus peticiones utilizando la clase Environment:

<?php
// URL de pagos
Environment::setPaymentsCustomUrl("https://sandbox.api.payulatam.com/payments-api/4.0/service.cgi");
// URL de reportes
Environment::setReportsCustomUrl("https://sandbox.api.payulatam.com/reports-api/4.0/service.cgi");
...
?>

Consideraciones

  • Debes tener una cuenta activa de PayU.
  • Debes instalar un certificado SSL válido en tu servidor y tu página web debe poder hacer conexiones SSL. Debido a esto, la máquina virtual debe contar con las extensiones de seguridad apropiadas. T* emporalmente 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.
  • Debes tener lenguajes de servidor o CGI tales como Java, C#, VB, PHP, etc.
  • Debes estar en capacidad de almacenar de forma segura tus credenciales de autenticación (API Key y API Login).
  • Los mensajes deben ser codificados utilizando UTF-8.
  • Las fechas deben utilizar el formato yyyy-MM-ddTHH:mm:ss, el formato de hora es 24 horas. Ejemplo: 2015-08-22T21:35:12.
  • En condiciones normales la conexión garantiza tiempos de respuesta de tres segundos en promedio. Si hay una situación anormal, el tiempo máximo de respuesta será de un minuto. Te recomendamos que configures los timeouts cuando te conectes a PayU.
  • Es importante validar la longitud y los números de tarjetas de crédito por franquicia junto con los códigos de seguridad.

Funcionalidades disponibles


Temas en esta sección

SDK de Pagos - Argentina

El SDK de Pagos de Argentina le permite a tu tienda procesar diferentes tipos de transacciones con múltiples métodos de pago.

SDK de Pagos - Brasil

El SDK de Pagos de Brasil le permite a tu tienda procesar diferentes tipos de transacciones con múltiples métodos de pago.

SDK de Pagos - Chile

El SDK de Pagos de Chile le permite a tu tienda procesar diferentes tipos de transacciones con múltiples métodos de pago.

SDK de Pagos - Colombia

El SDK de Pagos de Colombia le permite a tu tienda procesar diferentes tipos de transacciones con múltiples métodos de pago.

SDK de Pagos - México

El SDK de Pagos de México le permite a tu tienda procesar diferentes tipos de transacciones con múltiples métodos de pago.

SDK de Pagos - Perú

El SDK de Pagos de Perú le permite a tu tienda procesar diferentes tipos de transacciones con múltiples métodos de pago.

SDK de Consultas

El SDK de Consultas te permite validar el estado de las órdenes generadas junto con sus transacciones.

SDK de Tokenización

El SDK de Tokenización te permite almacenar de forma segura, la información de las tarjetas de crédito de tus clientes a través de la creación de un token. Este token tee permite realizar pagos regulares o implementar la funcionalidad de pago a un clic, siguiendo lo estándares de seguridad de PCI DSS (Payment Card Industry Data Security Standard) para manejar los datos de las tarjetas de crédito.

SDK de Reembolsos y Anulaciones

Esta funcionalidad te permite solicitar la cancelación o el reembolso de transacciones autorizadas o cobradas. Puedes crear la solicitud utilizando los métodos de reembolso (Refund) o de cancelación (Void) de acuerdo con el estado de la transacción.

Última modificación 13 de marzo de 2024: Documentation updates (ae44f4ea7)