...
Manual librería VTOLClient Java
...
VTOL CLIENT JAVA - Manual librería 1.1.10
Painel | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
|
...
|
...
Painel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
1. Introducción
1.1 Introducción
...
1.2 Protocolo de comunicación POS - VTOL
Synthesis Se establece un protocolo de comunicación para la interacción POS - VTOL, el cual se denomina "Protocolo SynthesisVTOL" o "llavecitas". Dicho protocolo se basa en un esquema recursivo compuesto por campos y separadores. A continuación se provee una especificación detallada de su estructura junto con los consecuentes diagramas para un mejor entendimiento.
Para implementar esta mensajería, VTOL provee una librería en el cual se encuentra la declaración de funciones y las definiciones de constantes y tipos necesarias. La librería es en realidad un módulo cliente que se comunica vía TCP/IP con el servidor de transacciones VTOL. El cliente podrá implementar esta mensajería sin utilizar la librería, pero deberá respetar el formato de la misma.
El formato del protocolo Synthesis VTOL se basa en la siguiente estructura:
Header | Mensaje | |
Longitud del mensaje (4 bytes) | Indica si el mensaje requiere respuesta o no (2 bytes) | Ejemplo: {25:20020426172836;1:5;2:1;27:00;26:ISO8583;28:Aprobado} |
La estructura posee dos partes separadas que son el Header y el Mensaje propiamente dicho.
...
Dentro del Header viaja información específica del mensaje que se encuentra a continuación del mismo, como ser su longitud y si requiere o no una respuesta. Para ello fueron destinados 6 bytes que se distribuyen de la siguiente manera: los primeros 4 bytes son destinados a la longitud (expresado en hexadecimal, con el último byte como el más significativo) y los últimos 2 indican la necesidad de recibir o no una respuesta (expresado en hexadecimal, con el último byte como el más significativo)
Un ejemplo de lo explicado anteriormente podría ser el siguiente:
HEADER | |
Longitud del mensaje | Requiere respuesta |
A101 | 01 |
En este ejemplo la longitud del mensaje será:
...
Las siguientes constantes deben ser inicializadas para hacer uso de la librería:
Nombre constante | Descripción |
HOSTIP
| Identifica el parámetro que se usa para determinar la IP de VTOL Server |
HOSTPORT
| Identifica el port TCP al cual se tiene que conectar con VTOL Server |
RESPONSETIMEOUT | [Opcional] Tiempo máximo en (milisegundos) de espera para un respuesta de VTOL server antes de salir por timeout. Superado este tiempo se lanza la excepción TimeoutClientException. |
Valor por defecto 30000. | |
TIMEOUTCONNECTIONHOST | [Opcional] Tiempo máximo de conexión a VTOL Server expresado en milisegundos. Superado este valor y no lograda la conexión, se arroja la excepción VtolClientException |
Un valor de cero significa infinito. |
Valor por defecto 20000. | |
TIMEOUTOBTAINNODE
| Tiempo máximo en milisegundos a esperará antes de arrojar una excepción al tratar de obtener un nodo. |
TIMEOUTEXPIRATIONNODE
| Identifica el parámetro utilizado para indicar el tiempo en liberar un nodo. En caso de no liberarse dentro de ese tiempo, será liberado por la aplicación. |
USEVTOLCLIENTFINDER
| Establece la utilización o no del VTOLClientFinder. True False (valor por defecto) |
CLIENTFINDER | [Opcional] R (siempre determinada realizar un Rollback de la transacción pendiente) C (siempre determinada realizar un Commit de la transacción pendiente, valor por defecto) ar.com.synthesis.vtol.client.VtolClientFinder y configurarla antes de inicializar la librería, por ejemplo: vtolClientLib.setVtolClientFinder(new MyTrxFinder()); vtolClientLib.init(); |
USEENCRYPTEDDATA | Establece la utilización de encriptación en los mensajes.
|
ENCRYPTER | [Opcional]
|
ENCRYPTKEY | [Opcional] |
USEPENDINGAUTOMATIC |
[Opcional] True False (valor por defecto) | |
TOTALNODESNUMBER |
[Opcional] | |
DEFAULTTRANSACTIONSTATUS |
[Opcional] C (valor por defecto) R | |
INITIALNODENUMBER |
[Opcional] | |
VTOLCLIENTLIBCONFIGPATH |
[Opcional] | |
PRECONFIGUREDFIELDSFILENAME |
[Opcional] | |
PRECONFIGUREDFIELD |
[Opcional]
| ||||||||||||||||
SSLENABLED | Indica cuando la comunicación con VTOL está sobre SSL:
| |||||||||||||||
SSLKEYSTORE | Ruta del archivo que contiene los certificados que se usaran para la validación. OBLIGATORIO cuando el parámetro SSLENABLED es True. | |||||||||||||||
SSLKEYSTOREPASSWORD | Contraseña del archivo que contiene los certificados que se usaran para la validación. OBLIGATORIO cuando el parámetro SSLENABLED es True. Valor por defecto: nosotros. | |||||||||||||||
SSLPROTOCOL | Versión de protocolo SSL/TLS. OBLIGATORIO cuando el parámetro SSLENABLED es True. Valores posibles:
|
2.2.3 Métodos de VTOLClient
Method Summary | |
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.2.4 Métodos de VTOLNode
Method Summary | |
|
|
|
|
| |
| |
| |
|
|
| |
|
|
|
|
|
|
| |
| |
| |
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.2.5 Interface VTOLClientFinder
...
Esta clase identifica cualquier excepción ocurrida en la librería e indica la misma a través de su mensaje.
Constructor Summary |
VtolClientException(java.lang.String _messageString) |
VtolClientException(java.lang.String _codeString, java.lang.String _messageString) |
Method Summary | |
java.lang.String | getCode() |
2.2.7 Encriptación
La librería brinda la posibilidad de encriptar los mensajes con el algoritmo DES y Triple DES utilizando la clase DES.
...
El nombre del parámetro necesariamente es PRECONFIGUREDFIELD
El valor del parámetro está compuesto por 4 valores separados por comas, a continuación se detallan los mismos:
Posición | Definición | Valores disponibles |
1 | Número de campo | Representa el número de campo que debe estar dado de alta en la mensajería de VTOL con el POS. |
2 | Valor del campo | Es el valor que se enviará en la mensajería de VTOL con el POS |
3 | Tienda para el que aplica | Se puede indicar alguno de los siguientes valores: |
4 | Nodo para el que aplica | Se puede indicar alguno de los siguientes valores: |
Con esto podemos tener 4 combinaciones
...
El archivo está compuesto por un tag principal llamado fields-configuration este tag contendrá cada uno de los campos previamente configurados que serán identificados con el tag preconfiguredField. La estructura de cada campo se muestra a continuación:
Nombre del Tag | Definición | Valores disponibles |
fieldNumber | Representa el número del campo que se mandará a VTOL | Se debe incluir un número entero de acuerdo a las especificaciones del manual así como los campos disponibles para su recepción en VTOL. |
fieldValue | Representa el valor del campo que se manda a VTOL | Cualquier valor que coincida con el tipo de dato y tamaño definidos en VTOL. |
Originador | Es un tag que representa al originador junto con los nodos que enviarán este campo. | Este tag representa como tal a un originador, que incluye tanto si ID como uno o más nodos. Los tags válidos son: originatorId, node. |
originatorId | Es el id del originador que enviará este campo. | Se puede indicar alguno de los siguientes valores: |
Node | Representa a un nodo como tal. | Pueden existir uno o más de estos elementos dentro del Nodo. Los tags váidos son: nodeId |
nodeId | Nodo para | Se puede indicar alguno de los siguientes valores: |
Nota |
---|
Nota: Si se requiere el comportamiento de que todos los originadores envíen el campo definido, entonces se deberá poner únicamente un tag Originator, con su respectivo originatorId con ( *** ). Los tags originador que se encuentren posteriormente a éste, serán ignorados. |
...
Para habilitar el logeo es necesario incluir en las opciones de la máquina virtual de JAVA la siguiente opción:
-Djava.util.logging.config.file=[PATH_ABSOLUTO_ARCHIVO_CONFIGURACION]
Dónde:
[PATH_ABSOLUTO_ARCHIVO_CONFIGURACION] corresponde al path y nombre de archivo completos de donde se encuentra el archivo de configuración del logeo.
...