Autorización

Este tipo de operación se corresponde con el concepto que tenemos de pago clásico, en el cual el cliente introduce sus datos de tarjeta y el comercio realiza una petición al servidor de Redsys con estos mismos datos por un importe determinado.

Para indicar en esta petición, el valor del parámetro "Ds_Merchant_TransactionType" debe ser "0".

Una autorización puede realizarse mediante las siguientes vías de integración:

Ejemplo de pago con autorización vía REST.


Para realizar una autorización vía rest, es necesario envíar el parámetro "Ds_MerchantParameters" del siguiente modo:

					
{
  "DS_MERCHANT_AMOUNT": "145",
  "DS_MERCHANT_CURRENCY": "978",
  "DS_MERCHANT_CVV2": "123",
  "DS_MERCHANT_EXPIRYDATE": "1512",
  "DS_MERCHANT_MERCHANTCODE": "999008881",
  "DS_MERCHANT_ORDER": "1446068581",
  "DS_MERCHANT_PAN": "454881********04",
  "DS_MERCHANT_TERMINAL": "1",
  "DS_MERCHANT_TRANSACTIONTYPE": "0"
}
					
				

Una vez realizada esta petición, se recibe una respuesta que puede contener un error, o un elemento "Ds_MerchantParameters", el cual debemos decodificar en BASE64. De esta forma obtenemos el parámetro Ds_Response, si su valor es "0000" el pago ha sido autorizado

					
{
  "Ds_Amount": "145",
  "Ds_AuthorisationCode": "501602",
  "Ds_CardNumber": "4548810000000004",
  "Ds_Card_Brand": "1",
  "Ds_Card_Country": "724",
  "Ds_Currency": "978",
  "Ds_Language": "1",
  "Ds_MerchantCode": "999008881",
  "Ds_Order": "1446068581",
  "Ds_Response": "0000",
  "Ds_SecurePayment": "0",
  "Ds_Terminal": "1",
  "Ds_TransactionType": "0"
}
						    
						

Ejemplo de pago con autorización vía Redirección.


Para realizar una autorización mediante redirección, es necesario envíar el parámetro "Ds_MerchantParameters" del siguiente modo:

					
{
  "DS_MERCHANT_ORDER":"1552565870",
  "DS_MERCHANT_MERCHANTCODE":"999008881",
  "DS_MERCHANT_TERMINAL":"999",
  "DS_MERCHANT_CURRENCY":"978",
  "DS_MERCHANT_TRANSACTIONTYPE":"0",
  "DS_MERCHANT_AMOUNT":"1000",
  "DS_MERCHANT_MERCHANTURL":"http://www.prueba.com/urlNotificacion.php",
  "DS_MERCHANT_URLOK":"http://www.prueba.com/urlOK.php",
  "DS_MERCHANT_URLKO":"http://www.prueba.com/urlKO.php"
}
					
				

Una vez realizada esta petición, se recibe una respuesta que puede contener un error, o un elemento "Ds_MerchantParameters", el cual debemos decodificar en BASE64. De esta forma obtenemos el parámetro "Ds_Response", si su valor es "0000" el pago ha sido autorizado

					
{
  "Ds_Date":"10%2F12%2F2019",
  "Ds_Hour":"09%3A41",
  "Ds_SecurePayment":"0",
  "Ds_Card_Type":"D",
  "Ds_Card_Country":"724",
  "Ds_Amount":"1000",
  "Ds_Currency":"978",
  "Ds_Order":"1575967259",
  "Ds_MerchantCode":"999008881",
  "Ds_Terminal":"1",
  "Ds_Response":"0000",
  "Ds_MerchantData":"",
  "Ds_TransactionType":"0",
  "Ds_ConsumerLanguage":"1",
  "Ds_AuthorisationCode":"372663",
  "Ds_Card_Brand":"2"
}
						    
						

Ejemplo de pago con autorización vía InSite.


Para realizar una autorización vía insite, es necesario envíar el parámetro "DS_MERCHANT_IDOPER" en el elemento "Ds_MerchantParameters":

					
{
  "DS_MERCHANT_AMOUNT": "145",
  "DS_MERCHANT_CURRENCY": "978",
  "DS_MERCHANT_MERCHANTCODE": "999008881",
  "DS_MERCHANT_ORDER": "1446068581",
  "DS_MERCHANT_IDOPER": "9c75f357629acb672e0f5444401d138f02e834ad ",
  "DS_MERCHANT_TERMINAL": "1",
  "DS_MERCHANT_TRANSACTIONTYPE": "0"
}
					
				

Una vez realizada esta petición, se recibe una respuesta que puede contener un error, o un elemento "Ds_MerchantParameters", el cual debemos decodificar en BASE64. De esta forma obtenemos el parámetro "Ds_Response", si su valor es "0000" el pago ha sido autorizado

					
{
  "Ds_Amount": "145",
  "Ds_AuthorisationCode": "501602",
  "Ds_CardNumber": "454881********04",
  "Ds_Card_Brand": "1",
  "Ds_Card_Country": "724",
  "Ds_Currency": "978",
  "Ds_Language": "1",
  "Ds_MerchantCode": "999008881",
  "Ds_Order": "1446068581",
  "Ds_Response": "0000",
  "Ds_SecurePayment": "0",
  "Ds_Terminal": "1",
  "Ds_TransactionType": "0"
}