Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Fecha

Revisión

Cambios – Motivo

 

1.0

Creación del documento

 

1.1Actualización de campos en "paymentData" para ventas PEI.



Índice


Índice


Âncora
_Toc434487091
_Toc434487091
1. Introducción

...

Además, el formulario de VTOL Payment Bridge permitirá ingresar datos adicionales del titular de la tarjeta, como ser Fecha de nacimiento, Dirección y Teléfono. Estos datos podrán ser enviados por el eCommerce a VPB en el mensaje de autorización de pago, o bien que VPB se los solicite al usuario en el formulario de ingreso de datos. Se mostrará una imagen como la siguiente:

...

Image Added

Formulario de pago de VPB con datos adicionales del tarjeta habiente

...

Bloco de código
linenumbers
themeMidnight
titlejsontrue
{
   "ecommerce": {
      "company": "C1",
      "store": "1"
   },
   "transactionType": "sale",
   "autoCommit": false,
   "additionalCardHolder": false,
   "transactionId": 1569441914224,
   "orderDescription": "El total de su compra es de $110.99. Ha elegido pagar en Pesos Argentinos (ARS)",
   "amount": "110.90",
   "currency": "$",
   "interestAmount": "0",
   "userId": "",
   "posTicket": "",
   "ecommerceCustomField": "Ref001",
   "cardHolder": {
      "identificationType": "1",
      "identificationNumber": "32058821",
      "birthdate": "22/07/1986",
      "phone": "3425340300",
      "deliveryAddress": {
         "streetName": "25 de mayo",
         "streetNumber": "3587",
         "complement": "2B",
         "zipCode": "3000"
      }
   },
   "url": {
      "callbackUrlError": "https://localhost:8843/emulatorEcommerce/callbackErrorURL.jsp",
      "callbackUrlSuccessful": "https://localhost:8843/emulatorEcommerce/callbackOKURL.jsp",
      "callbackUrlCancel": "https://localhost:8843/emulatorEcommerce/callBackCancel.jsp",
      "checkTransactionStatus": "http://localhost:8280/emulatorEcommerce/service/checkStatusReturnRandom.html"
   },
   "formData": {
      "merchantName": "My Company",
      "merchantImageURL": "https://ip/image.png"
   },
   "paymentData": {
      "payments": "1",
      "plan": "0"
   },
   "cardValidation": {
      "brand": "VISA",
      "provider": "VI",
      "bank": "BANCO GALICIA"
   },
   "customerData": {
      "customerId": "100",
      "customerIP": "10.90.100.101",
      "customerName": "Juan Carlos",
      "customerLastName": "Rodriguez",
      "customerIdentificationType": "1",
      "customerIdentificationNumber": "32123456"
   }
}

...

Parámetro

Tipo

Obligatorio

Descripción

ecommerceObjectSIDatos del comercio electrónico

companyAlfanuméricoSICódigo de la compañía que realiza la solicitud de pago.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza la solicitud de pago.
transactionTypeAlfanuméricoSITipo de transacción. Enviar: SalePEI
transactionIdNuméricoSI

Identificador de la transacción de pago. 16 dígitos de longitud. Debe ser generado por el eCommerce para identificar unívocamente una operación de pago, respetando el siguiente formato: yyyyMMddHHmmssxx, donde:

yyyyMMddHHmmss: Fecha en que se realiza la operación con 4 dígitos para el año, 2 dígitos para el mes, 2 dígitos para el día, dos dígitos para la hora, dos dígitos para los minutos y 2 dígitos para los segundos.

xx: 2 dígitos para el trace de transacciones. Es un valor incremental que inicia en 01 y su valor máximo es 99.

paymentDataObjectSIDatos de las opciones de pago

paymentsNuméricoSICuotas. Enviar siempre el valor 1.

planAlfanuméricoSIPlan. Enviar siempre el valor 0.
additionalCardHolderBooleanNO

Campo que podrá enviar el eCommerce para que VPB solicite datos adicionales del tarjeta habiente en el formulario de pago, y ser validados por antifraude. Estos datos serán enviados en el objeto cardHolder.

Valores posibles:

True: VPB solicitará datos adicionales del tarjeta habiente en el formulario de pago.

False: VPB no solicitará datos adicionales del tarjeta habiente en el formulario. Dichos datos deberán ser enviados por el eCommerce.

Si no se envía este campo, los datos adicionales del cliente no serán solicitados por ningún sistema.

cardHolderObjectNODatos del titular de la tarjeta.

identificationTypeAlfanuméricoNO

Tipo de identificación. Valores posibles:

0: CUIT
1: CUIL
2: Número único


identificationNumberNuméricoNO

Número de identificación. Máximo 8 dígitos.


birthdateDateCondicional

Fecha de nacimiento del tarjeta habiente. Formato DDMMYYYY.

Obligatorio si additionalCardHolder=False


phoneNuméricoNOTeléfono del tarjeta habiente. Máximo 11 dígitos.

deliveryAddress

ObjectNODatos de dirección de entrega del resumen de la tarjeta del pagador.



streetName

AlfanuméricoCondicional

Calle.

Obligatorio si additionalCardHolder=False



streetNumber

NuméricoCondicional

Número de puerta.

Obligatorio si additionalCardHolder=False



complementAlfanuméricoNOPiso / departamento.



zipCode

NuméricoNOCódigo postal. Máximo 4 dígitos.
customerData
ObjectNODatos del usuario registrado en el e-commerce

customerNameAlfanuméricoNONombre del cliente del e-commerce. Longitud máxima 30.

customerLastNameAlfanuméricoNOApellido del cliente del e-commerce. Longitud máxima 30.

customerIdentificationTypeAlfanuméricoNOTipo de documento del cliente del e-commerce

customerIdentificationNumberAlfanuméricoNONúmero de documento del cliente del e-commerce

customerIdAlfanuméricoNONombre o id del usuario del e-commerce.

customerIPAlfanuméricoSIDirección IP del usuario del e-commerce.
cardValidationObjectSIDatos que utilizará VPB para validar la tarjeta ingresada por el usuario en el formulario.

brandAlfanuméricoNOMarca de la tarjeta. Máximo 10 caracteres. Corresponde a la marca de tarjeta cargada en VTOL.

providerAlfanuméricoSICódigo del Proveedor de tarjeta cargado en VTOL. Ejemplo VI (Visa). Longitud máxima 20.

bankAlfanuméricoNOBanco emisor de la tarjeta. Longitud máxima 20. Corresponde a la descripción del banco cargado en VTOL.
amountNuméricoSIImporte total a pagar.

currency

Alfanumérico

SI

Tipo de Moneda:

  • $ = Pesos
urlObjectSIDatos de las URLs de callback.


callbackUrlError

Alfanumérico

SI

URL de respuesta a la cual VPB hace la redirección cuando el requerimiento genera un error de validación o se produce algún problema interno. En la invocación se envía el transaccionID correspondiente y un mensaje que detalla el error ocurrido.


callbackUrlSuccessful

Alfanumérico

SI

URL de respuesta a la cual VPB hace la redirección cuando el requerimiento finaliza correctamente. En la invocación se envía el transacciónID correspondiente.
Importante: que haya sido enviado a VTOL Server no significa que la operación se encuentre Aprobada.


callbackUrlCancelAlfanuméricoSIURL de respuesta que será invocado cuando el pago de la compra sea cancelado por el usuario desde VPB.
formDataObjectNODatos del comercio que se mostrarán en el formulario de ingreso de datos de la tarjeta


merchantName

AlfanuméricoNO

Nombre que se visualizará en el formulario para el ingreso de datos de la tarjeta.

Si no se envía este campo, se mostrará un nombre por defecto.


merchantImageURL

AlfanuméricoNO

URL donde VPB podrá tomar la imagen que se visualizará en el formulario para el ingreso de datos de la tarjeta.

Si no se envía este campo, se mostrará una imagen por defecto.


merchantImageMobileURLAlfanuméricoNO

URL donde VPB podrá tomar la imagen que se visualizará en el formulario para el ingreso de datos de la tarjeta en dispositivos móviles y tablets.

Si no se envía este campo, se mostrará una imagen por defecto.

orderDescriptionAlfanuméricoNOEste campo se utiliza para enviar desde el eCommerce una leyenda que se mostrará en el formulario de VPB. En caso de que no se envíe este campo, se mostrará una leyenda por defecto.
posTicketAlfanuméricoNOInformación del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket
ecommerceCustomFieldAlfanuméricoNOMáximo 255 caracteres. Campo generado por el eCommerce, lo puede enviar a VPB para que este lo guarde y pueda ser usado para trazabilidad del eCommerce.
validationDataObjectNOColección para informar los campos que VPB validará si coinciden con los datos ingresados por el usuario en el formulario.

identificationNumberMatchBooleanNO

Indica si el campo identificationNumber de la colección cardHolder, debe validar coincidencia entre el dato enviado por el eCommerce y valor ingresado por el cliente en el formulario de VPB.

True: VPB verificará si coinciden los datos. Ver validaciones del campo.

False: VPB no verificará si coinciden los datos.

Si el eCommerce no envía este campo, entonces VPB no realizará ninguna verificación.

...

    • Si el valor enviado por el eCommerce y el valor ingresado por el usuario en el formulario de VPB coinciden, entonces se enviará la transacción a VTOL Sever para ser autorizada.
    • Si el valor enviado por el eCommerce y el valor ingresado por el usuario en el formulario de VPB NO coinciden, entonces se mostrará el siguiente mensaje en pantalla: "Algo salió mal. Ingrese nuevamente los datos". Se mostrará el formulario de VPB con todos los campos en blanco para que se vuelvan a cargar. Sólo se podrá ingresar 3 veces un valor no coincidente. Al cuarto intento que no coinciden los DNI, se retornará a la url de callbackError al eCommerce, informando el error "Excedió el número de reintentos". Estos intentos se sumarizan junto a los errores que valida VPB antes de enviar la transacción a VTOL Server. Ver Validaciones en el formulario VPB

Ejemplo de requerimiento:

Bloco de código
languagejs
themeMidnight
titleRequest
{
   "ecommerce": {
      "company": "100",
      "store": "101"
   },
   "paymentData": {
      "payments": "1",
      "plan": "0"
   },
   "validationData": {
      "identificationNumberMatch": true
   },
   "transactionType": "salePEI",
   "autoCommit": "false",
   "additionalCardHolder": "false",
   "transactionId": "20201027122637",
   "orderDescription": "El total de su compra es de $110.99. Ha elegido pagar en Pesos Argentinos (ARS)",
   "amount": "110.90",
   "currency": "$",
   "posTicket": "",
   "ecommerceCustomField": "",
   "cardHolder": {
      "identificationType": "2",
      "identificationNumber": "12345678",
      "birthdate": "01/10/2001",
      "phone": "",
      "deliveryAddress": {
         "streetName": "Venezuela",
         "streetNumber": "3158",
         "complement": "Edificio Lumina",
         "zipCode": "B1603"
      }
   },
   "url": {
      "callbackUrlError": "http://localhost:8280/emulatorEcommerce/callbackErrorURL.jsp",
      "callbackUrlSuccessful": "http://localhost:8280/emulatorEcommerce/callbackOKURL.jsp",
      "callbackUrlCancel": "http://localhost:8280/emulatorEcommerce/callBackCancel.jsp",
      "checkTransactionStatus": "http://localhost:8280/emulatorEcommerce/service/checkStatusReturnRandom.html"
   },
   "formData": {
      "merchantName": "",
      "merchantImageURL": "",
      "merchantImageMobileURL": ""
   },
   "cardValidation": {
      "brand": "Visa",
      "provider": "EL"
   },
   "customerData": {
      "customerId": "100",
      "customerIP": "10.90.100.101",
      "customerName": "NOMBRE25",
      "customerLastName": "APELLIDO25",
      "customerIdentificationType": "0",
      "customerIdentificationNumber": "34000499"
   }
}


Respuesta:

Se obtiene un JSON con los siguientes campos:

...