SDK de Tokenización
La funcionalidad de Tokenización está disponible bajo acuerdos comerciales personalizados. Para más información, contacta a tu representante de ventas.
Para integrate con el SDK de Tokenización, apunta tus peticiones a las siguientes URLs de acuerdo con tu ambiente.
// URL para pruebas: https://sandbox.api.payulatam.com/payments-api/
PayU.paymentsUrl = “https://api.payulatam.com/payments-api/”;
// URL para pruebas: https://sandbox.api.payulatam.com/reports-api/
PayU.reportsUrl = “https://api.payulatam.com/reports-api/”;
// URL para pruebas: https://sandbox.api.payulatam.com/payments-api/4.0/service.cgi
Environment::setPaymentsCustomUrl(“https://api.payulatam.com/payments-api/4.0/service.cgi”);
// URL para pruebas: https://sandbox.api.payulatam.com/reports-api/4.0/service.cgi
Environment::setReportsCustomUrl(“https://api.payulatam.com/reports-api/4.0/service.cgi”);
Métodos disponibles
El SDK de Tokenización incluye métodos para registrar, eliminar y consultar tokens.
- Registro individual de tarjeta de crédito
- Eliminación individual de tarjeta de crédito
- Consulta de tókenes
Registro individual de tarjeta de crédito
Utilizando esta funcionalidad, puedes registrar la información de la tarjeta de crédito de un cliente y obtener un token.
Llamado del método
Los siguientes ejemplos muestra cómo llamar los métodos para esta transacción de acuerdo con el lenguaje de programación.
//-- Operación “Crear Token” --
Map<String, String> parameters = new HashMap<String, String>();
// Ingresa aquí el nombre del pagador.
parameters.put(PayU.PARAMETERS.PAYER_NAME, "Mary Keller");
// Ingresa aquí el identificador del pagador.
parameters.put(PayU.PARAMETERS.PAYER_ID, "10");
// Ingresa aquí el número de identificación del pagador.
parameters.put(PayU.PARAMETERS.PAYER_DNI, "32144457");
// Ingresa aquí el número de la tarjeta de crédito
parameters.put(PayU.PARAMETERS.CREDIT_CARD_NUMBER, "4668063527597820");
// Ingresa la fecha de expiración de la tarjeta de crédito
parameters.put(PayU.PARAMETERS.CREDIT_CARD_EXPIRATION_DATE, "2024/06");
// Ingresa aquí el nombre de la tarjeta de crédito
parameters.put(PayU.PARAMETERS.PAYMENT_METHOD, "VISA");
CreditCardToken response = PayUTokens.create(parameters);
if(response != null){
response.getTokenId();
response.getMaskedNumber();
response.getPayerId();
response.getIdentificationNumber();
response.getPaymentMethod();
}
$parameters = array(
// Ingresa aquí el nombre del pagador.
PayUParameters::PAYER_NAME => "Mary Keller",
// Ingresa aquí el identificador del pagador.
PayUParameters::PAYER_ID => "10",
// Ingresa aquí el número de identificación del pagador.
PayUParameters::PAYER_DNI => "32144457",
// Ingresa aquí el número de la tarjeta de crédito
PayUParameters::CREDIT_CARD_NUMBER => "4668063527597820",
// Ingresa la fecha de expiración de la tarjeta de crédito
PayUParameters::CREDIT_CARD_EXPIRATION_DATE => "2024/10",
// Ingresa aquí el nombre de la tarjeta de crédito
PayUParameters::PAYMENT_METHOD => "VISA"
);
$response = PayUTokens::create($parameters);
if($response){
//Puedes obtener el token de la tarjeta de crédito
$response->creditCardToken->creditCardTokenId;
}
Eliminación individual de tarjeta de crédito
Utilizando esta funcionalidad, puedes eliminar un token previamente registrado.
Llamado del método
Los siguientes ejemplos muestra cómo llamar los métodos para esta transacción de acuerdo con el lenguaje de programación.
// -- Operación "Eliminar token" --
Map<String, String> parameters = new HashMap<String, String>();
// Ingresa aquí el identificador del pagador.
parameters.put(PayU.PARAMETERS.PAYER_ID, "10");
// Ingresa aquí identificador el token.
parameters.put(PayU.PARAMETERS.TOKEN_ID, "ab01ecd5-7d8f-4bee-91c1-4535d9ba282e");
CreditCardToken response = PayUTokens.remove(parameters);
LoggerUtil.info("{0}", response);
$parameters = array(
// Ingresa aquí el identificador del pagador.
PayUParameters::PAYER_ID => "10",
// Ingresa aquí identificador el token.
PayUParameters::TOKEN_ID => "ab01ecd5-7d8f-4bee-91c1-4535d9ba282e"
);
$response=PayUTokens::remove($parameters);
if($response){
}
Consulta de tókenes
Utilizando esta funcionalidad, puedes obtener la información de las tarjetas de crédito tokenizadas, puedes consultar por número de token o por rango de fechas.
Llamado del método
Los siguientes ejemplos muestra cómo llamar los métodos para esta transacción de acuerdo con el lenguaje de programación.
// -- Operación "consultar token" --
Map<String, String> parameters = new HashMap<String, String>();
// -- Parámetros opcionales --
// Ingresa aquí el identificador del pagador.
parameters.put(PayU.PARAMETERS.PAYER_ID, "10");
// Ingresa aquí identificador el token.
parameters.put(PayU.PARAMETERS.TOKEN_ID, "ab01ecd5-7d8f-4bee-91c1-4535d9ba282e");
// Ingresa la fecha de inicio y fin para filtrar por rango de fechas.
parameters.put(PayU.PARAMETERS.START_DATE, "2021-06-29T12:00:00");
parameters.put(PayU.PARAMETERS.END_DATE, "2021-07-01T12:00:00");
List<CreditCardToken> response = PayUTokens.find(parameters);
Iterator<CreditCardToken> tokens_iterator=response.iterator();
while(tokens_iterator.hasNext()){
CreditCardToken token= (CreditCardToken) tokens_iterator.next();
token.getTokenId();
token.getMaskedNumber();
token.getPayerId();
token.getIdentificationNumber();
token.getPaymentMethod();
}
// -- Parámetros opcionales --
$parameters = array(
// Ingresa aquí el identificador del pagador.
PayUParameters::PAYER_ID => "10",
// Ingresa aquí identificador el token.
PayUParameters::TOKEN_ID => "ab01ecd5-7d8f-4bee-91c1-4535d9ba282e",
// Ingresa la fecha de inicio y fin para filtrar por rango de fechas. Optional.
PayUParameters::START_DATE=> "2021-06-29T12:00:00",
PayUParameters::END_DATE=> "2021-07-01T12:00:00"
);
$response=PayUTokens::find($parameters);
if($response) {
$credit_cards = $response->creditCardTokenList;
foreach ($credit_cards as $credit_card) {
$credit_card->creditCardTokenId;
$credit_card->maskedNumber;
$credit_card->payerId;
$credit_card->identificationNumber;
$credit_card->paymentMethod;
}
}
Pagos utilizando tokenización
Para pagos con tókenes de tarjeta de crédito, incluye el parámetro CREDIT_CARD_SECURITY_CODE
reemplazando la información de la tarjeta de crédito. El siguiente ejemplo muestra el cuerpo de la petición a alto nivel de un flujo de un paso, no se muestran los detalles de la petición.
Nota
Para procesar sin CVV es necesario enviar el parámetroPROCESS_WITHOUT_CVV2
omo true en la petición del pago y quitar el parámetro CREDIT_CARD_SECURITY_CODE
.Por defecto, no está activo el procesamiento de tarjetas de crédito sin código de seguridad. Si quieres activar esta funcionalidad, contacta a tu representante de ventas.
Map<String, String> parameters = new HashMap<String, String>();
// Ingresa aquí el identificador de la cuenta.
parameters.put(PayU.PARAMETERS.ACCOUNT_ID, accountId);
// Ingresa aquí la referencia de pago.
parameters.put(PayU.PARAMETERS.REFERENCE_CODE, reference);
// Ingresa aquí la descripción del pago.
parameters.put(PayU.PARAMETERS.DESCRIPTION, "payment test");
// Ingresa aquí el idioma de la transacción.
parameters.put(PayU.PARAMETERS.LANGUAGE, "Language.es");
// -- Valores --
//Ingresa aquí el valor.
parameters.put(PayU.PARAMETERS.VALUE, value);
// Ingresa aquí la moneda.
parameters.put(PayU.PARAMETERS.CURRENCY, currency);
// -- Comprador --
// Ingresa aquí la información del comprador.
//parameters.put([...], [...]);
// -- Pagador --
// Ingresa aquí la información del pagador.
//parameters.put([...], [...]);
// -- Datos de la tarjeta de crédito --
// Ingresa aquí el token de la tarjeta de crédito
parameters.put(PayU.PARAMETERS.TOKEN_ID, "ab01ecd5-7d8f-4bee-91c1-4535d9ba282e");
// Ingresa aquí el código de seguridad de la tarjeta de crédito
parameters.put(PayU.PARAMETERS.CREDIT_CARD_SECURITY_CODE, "321");
// Ingresa aquí el nombre de la tarjeta de crédito
parameters.put(PayU.PARAMETERS.PAYMENT_METHOD, "VISA");
// Ingresa aquí el número de cuotas.
parameters.put(PayU.PARAMETERS.INSTALLMENTS_NUMBER, "1");
// Ingresa aquí el nombre del país.
parameters.put(PayU.PARAMETERS.COUNTRY, CountryName);
// Device Session ID
parameters.put(PayU.PARAMETERS.DEVICE_SESSION_ID, "vghs6tvkcle931686k1900o6e1");
// IP del pagador
parameters.put(PayU.PARAMETERS.IP_ADDRESS, "127.0.0.1");
// Cookie de la sesión actual.
parameters.put(PayU.PARAMETERS.COOKIE, "pt1t38347bs6jc9ruv2ecpv7o2");
// User agent de la sesión actual.
parameters.put(PayU.PARAMETERS.USER_AGENT, "Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0");
// Petición de "Autorización y captura"
TransactionResponse response = PayUPayments.doAuthorizationAndCapture(parameters);
$parameters = array(
//Ingresa aquí el identificador de la cuenta
PayUParameters::ACCOUNT_ID => $accountId,
// Ingresa aquí la referencia de pago.
PayUParameters::REFERENCE_CODE => $reference,
// Ingresa aquí la descripción del pago.
PayUParameters::DESCRIPTION => "payment test",
// -- Valores --
//Ingresa aquí el valor.
PayUParameters::VALUE => $value,
// Ingresa aquí la moneda.
PayUParameters::CURRENCY => $currency,
// -- Comprador --
// Ingresa aquí la información del comprador.
//PayUParameters::[...] => [...],
// -- Pagador --
// Ingresa aquí la información del pagador.
//PayUParameters::[...] => [...],
// -- Datos de la tarjeta de crédito --
// Ingresa aquí el token de la tarjeta de crédito
PayUParameters::TOKEN_ID => "ab01ecd5-7d8f-4bee-91c1-4535d9ba282e",
PayUParameters::CREDIT_CARD_EXPIRATION_DATE => "2022/12",
// Ingresa aquí el código de seguridad de la tarjeta de crédito
PayUParameters::CREDIT_CARD_SECURITY_CODE=> "321",
// Ingresa aquí el nombre de la tarjeta de crédito
PayUParameters::PAYMENT_METHOD => "VISA",
// Ingresa aquí el número de cuotas.
PayUParameters::INSTALLMENTS_NUMBER => "1",
// Ingresa aquí el nombre del país.
PayUParameters::COUNTRY => $country,
// Device Session ID
PayUParameters::DEVICE_SESSION_ID => "vghs6tvkcle931686k1900o6e1",
// IP del pagador
PayUParameters::IP_ADDRESS => "127.0.0.1",
// Cookie de la sesión actual
PayUParameters::PAYER_COOKIE=>"pt1t38347bs6jc9ruv2ecpv7o2",
// User agent de la sesión actual
PayUParameters::USER_AGENT=>"Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0"
);
// Petición de "Autorización y captura"
$response = PayUPayments::doAuthorizationAndCapture($parameters);
Para detalles específicos sobre cómo realizar pagos, consulta el artículo correspondiente al país de procesamiento.