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.

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

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.

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.




Última modificación 24 de junio de 2022: clon issue (d73e43fe5)