joaquin box muñoz ingeniero informático - … · proyecto tÉcnico para la contrataciÓn de un...
TRANSCRIPT
Joaquin Box Muñoz
Ingeniero Informático
Proyecto técnico para la contratación de
un sistema autoservicio de entrada a las
instalaciones conectado a los existentes
sistemas de control de acceso a la unidad.
para
17/01/2018
Ver. 1.1
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 2 of 16
OBJETO DEL PROYECTO Es objeto del presente proyecto técnico la descripción de un sistema para la instalación y configuración de un cajero autoservicio de doble altura encastrable en cabina de control de entrada designada por Mercasevilla y la implantación del software de gestión de entrada autoservicio a las instalaciones.
ESPECIFICACIONES TÉCNICAS Cajero autoservicio de doble altura con las siguientes características:
- Medidas: Las medidas de la imagen son orientativas. Siendo el rango de medidas
permitidas (ancho x alto x profundidad): MIN 65.0 x 40.0 x 200.0 CM – MAX 75.0 x 50.0 x 220.0
- Material: Estructura metálica de acero AP2 de 2mm. - Bridas interiores: Galvanizadas y/o PVC. - Acabado: Pintura epoxi de alta resistencia. Color blanco efecto perla. - Accesos: Puertas traseras con cerradura seguridad 3P - Conexiones: Regleta interna con interruptor I/O, cableado interior. - Módulos: zona superior para dispositivos, zona intermedia de almacenaje de papel y
componentes, zona inferior para dispositivos, y pie de aprox. 500mm para anclaje vertical.
- Personalización: Vinilos para la identificación de sus componentes.
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 3 of 16
Dispositivos que componen el cajero autoservicio:
- PC Industrial i5 o superior + SO Windows 7 Profesional, con actualizaciones de versiones incluidas dentro del servicio de mantenimiento.
- Fuente de alimentación interrumpida (SAI) USB 800VA. Dimensiones máximas (alto x ancho x fondo): 99x175x313 mm
- Fuente de alimentación OEM 12V 6.5A - Fuente de alimentación 24VDC 6.5A - Pantalla táctil TFT de 12” con protector anti-vandálico - Intercomunicador audio IP/SIP encastrable con protección IP-65. Dimensiones
máximas (alto x ancho x fondo): 186x123x40 mm - Altavoz para integración OEM - Pago Efectivo:
o Gestor de billetes.
Reciclador de billetes con múltiples denominaciones con capacidad de gestionar todas las denominaciones de una moneda determinada (Euro:
50€, 20€, 10€ y 5€). Aceptación configurable de denominaciones e
incorporación de sistema inhibidor de cualquier tipo de billetes. Acceso: cerradura seguridad
Módulos: Apilador de billetes con cerradura de apertura y capacidad
de almacenaje mínima de 500 billetes. Reciclador de billetes con capacidad mínima de 70 billetes.
Certificaciones: estándares UL, RoHS, CE, Weee, REACH y aprobaciones bancarias ECB, BoE y FED
Alimentación: Nominal 12 V
En espera 400 mA
Funcionamiento 3 A
Pico 5 A
Interfaz: USB
o Gestor de monedas Reciclador de monedas masivo con múltiples denominaciones con
capacidad de gestionar todas las denominaciones de una moneda
determinada (Euro: 2€, 1€, 50c, 20c, 10c, 5c, 2c y 1c). Aceptación
configurable de denominaciones e incorporación de sistema inhibidor de cualquier tipo de monedas.
Acceso: cerradura seguridad
Módulos: Apilador de monedas con cerradura de apertura. Reciclador de monedas mezcladas con capacidad variable
según el tipo de moneda, evitando por tanto la necesidad de múltiples recicladores por denominación. Capacidad aproximada de monedas mezcladas: 200x2€ + 750x1€ + 500x50c
Certificaciones: estándares UL, RoHS, EN Directives, Weee, REACH
Alimentación:
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 4 of 16
Nominal 24 V
En espera 200 mA
Funcionamiento 3 A
Pico 6.5 A Interfaz: USB
- Kit EMV desatendido:
o Módulos: Lector de tarjetas
Interfaz: USB
Dimensiones máximas (alto x ancho x fondo): 67x97x102 mm PinPad
Teclado: Teclado 10 + 6 | 10 teclas numéricas, 4 teclas con relieve y color, 2 teclas de navegación
Interfaz: USB
Dimensiones máximas (alto x ancho x fondo): 142x108x26 mm
Lector Contactless ISO14443 A&B.
Dimensiones máximas (alto x ancho x fondo): 92x100x27 mm
o Certificaciones: homologación para el pago con tarjeta (contacto y contactless) y certificaciones PCI PTS 3.X, EMV Nivel 1 y Nivel 2, certificado por REDSYS.
- Lector de códigos QR. o Interfaz: USB o Dimensiones máximas (alto x ancho x fondo): 27x92x100 mm o Protección IP53
- Lector de tarjeta chip con protocolos T=0 y T=1 e ISO 7816
o Interfaz: USB o Dimensiones máximas (alto x ancho x fondo): 26x102x125 mm o Certificaciones: Microsoft WHQL, PC/SC, EMV Level 1, CE, FCC, EN 60950/IEC
60950, RoHS
- Impresora térmica 60mm con auto-corte y sensor de detección de papel. Alta velocidad de impresion Max. 150 mm/sec
o Interfaz: USB o Dimensiones máximas (alto x ancho x fondo): 75x106x150 mm
Instalación física del cajero
El cajero deberá contar con dos conexiones de red eléctrica, dos conexiones de red de datos para las CPUs y 2 conexiones de red de datos para los PINPADs. Estas conexiones se harán en cabina designada por Mercasevilla y tanto las conexiones como ampliaciones de red de datos y eléctricas correrán a cargo del adjudicatario.
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 5 of 16
El sistema de auto pago se instalará en el control de entrada número designado por Mercasevilla y encastrado en cabina existentes encontrándose incluido el gasto total de la instalación en el precio propuesto en la presente licitación, así como todo tipo de gastos de seguros, transportes, obra civil requerida para la instalación y cuantas se deriven del cumplimiento de las condiciones estipuladas en el presente pliego, ofreciendo el servicio a dos niveles de altura, cubriendo el acceso a vehículos de diferente altura (coches, furgonetas, camiones, etc..), según la foto adjunta:
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 6 of 16
PROTOCOLO La interfaz de comunicación a utilizar será a través de servicios, y el protocolo de comunicación entre el aplicativo actual y el cajero autoservicio deberá ser compatible con el protocolo descrito a continuación:
DEFINICIÓN DE MENSAJES Se usará el formato JSON para el intercambio de datos:
incommingVehicle
Este mensaje se utiliza para avisar al cajero de que viene un cliente.
incommingVehicle
transaction: number
shift: number
tollCollector: string
tripCard: boolean
audio: boolean
transaction: identificador numérico de la transacción
shift: turno
tollCollector: código del operador
tripCard: indicador para permitir la lectura de tickets de paso o no.
audio: indicador para habilitar la reproducción de audios durante el transcurso de una
operación
Ejemplo:
{
"incommingVehicle": {
"transaction": 1,
"shift": 2,
"tollCollector": "3085710110001118",
"tripCard": true,
"audio": false
}
}
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 7 of 16
card
Este mensaje se utiliza para notificar una tarjeta financiera.
pan: número de la tarjeta
track1: pista 1 de la tarjeta
track2: pista 2 de la tarjeta
bin: 6 primeros dígitos de la tarjeta
expirationDate: fecha de expiración de la tarjeta (YYMM)
type: tipo de tarjeta
1 (financiera)
valid: resultado de las validaciones llevadas a cabo
Validación longitud de la tarjeta. Validación código Luhn. Fecha de caducidad (No en el caso de las tarjetas propias)
codser: código de servicio
transaction: identificador numérico de la transacción
Ejemplo:
{
"card": {
"pan": "6799998900000060018",
"track1": "",
"track2": ";6799998900000060018=2512201012345678",
"bin": "679999",
"expirationDate": "2512",
"type": 1,
"valid": true,
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 8 of 16
"codser": "201",
"transaction": 1
}
}
transactionPrice
Una vez que la maquina ha respondido correctamente al mensaje de incommingVehicle y está
preparada para el pago, el aplicativo actual manda los datos necesarios para comenzar la
transacción.
transactionPrice
transaction: number
class: number
registration: string
origin: number
amount: number
paid: boolean
paymentMode: string
dateTime: string
transaction: identificador numérico de la transacción
class: tipo de vehículo
registration: matrícula del vehículo
origin: punto de entrada.
amount: importe de la transacción en céntimos
paid: indicador de si la operación fue abonada previamente
paymentMode: indicador de cómo se ha completado el pago. Éste será requerido
cuando paid = true. De momento solo se soporta el valor TAG, pero a futuro podrían
soportarse otros tipos de pago: cash, creditCard, etc.
dateTime: fecha/hora del tránsito que debe ser impresa en el recibo.
Ejemplo:
{
"transactionPrice": {
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 9 of 16
"transaction": 1,
"class": 2,
"registration": "M-6123-JK",
"origin": "Madrid",
"amount": 200,
"paid": false,
"paymentMode": "",
"dateTime": "05/05/2017 12:00"
}
}
paymentProgress
Este mensaje se envía con cada moneda o billete que se introduce en el cajero.
lastDenomination: tipo de efectivo ingresado en ese momento
allDenomination: listado del total de cada tipo de efectivo ingresado
amountLeft: importe que queda por pagar en céntimos
amountPaid: importe ingresado hasta el momento en céntimos
amount: importe de la transacción en céntimos
transaction: identificador numérico de la transacción
Ejemplo:
Se introduce en el siguiente orden: una moneda de 50 cent., una moneda de 2€, otra moneda
de 50 cent. y finalmente un billete de 5€.
{
"paymentProgress": {
"lastDenomination": {"id": 500, "quantity": 1},
"allDenomination": [
{"id": 500, "quantity": 1},
{"id": 200, "quantity": 1},
{"id": 50, "quantity": 2}],
"amountLeft": 200,
"amountPaid": 800,
"amount": 1000,
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 10 of 16
"transaction": 1
}
}
voidTransaction
En caso de que sea necesario anular la transacción se enviará este mensaje. Además se indicará
si se tiene que devolver el dinero al cliente.
transaction: identificador numérico de la transacción
moneyBack: booleano para indicar si devolver el dinero
Ejemplo:
{
"voidTransaction": {
"moneyBack": true,
"transaction": 1
}
}
statusReport
Este mensaje reporta el estado general del cajero.
cardReader: estado de los lectores de tarjeta
coinSorter: estado del dispositivo de monedas
billSorter: estado del dispositivo de billetes
printer: estado de la impresora
Ejemplo:
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 11 of 16
{
"statusReport": {
"cardReader": "OK"
"coinSorter": "OK"
"billSorter": "OK"
"printer": "FAIL: Impresora sin papel"
}
}
keepAlive
Este mensaje se envía periódicamente desde el cajero hasta el aplicativo actual y viceversa.
timestamp: fecha y hora del momento en que se envía el mensaje
Ejemplo:
{
"keepAlive": {
"timestamp": "2017-01-11T10:32:43Z"
}
}
paymentCompleted
Este mensaje se envía cuando la transacción es cancelada por el cliente o el aplicativo actual, o
bien cuando se completa el pago.
paymentCompleted
paymentMode: string
transaction: number
changeGiven: denominations
changeNotGiven: number
amount: number
allDenomination: [denominations]
receipt: boolean
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 12 of 16
paymentMode: indicador de cómo se ha completado el pago
cash – pago completado y pagado en efectivo creditCard – pago completado y pagado con tarjeta financiera. void – pago cancelado por el CV cancelled – pago cancelado por el usuario TAG – pago mediante un dispositivo electrónico instalado en el vehiculo
transaction: identificador numérico de la transacción
changeGiven: listado del total de cada tipo de efectivo devuelto
changeNotGiven: importe no devuelto en céntimos
amount: importe de la transacción en céntimos
allDenomination: listado del total de cada tipo de efectivo ingresado
receipt: indica si fue impreso el recibo de la operación.
Ejemplo:
Se introduce en el siguiente orden: una moneda de 50 cent., una moneda de 2€, otra moneda
de 50 cent., un billete de 5€ y finalmente otro billete de 5€.
{
"paymentCompleted": {
"paymentMode": "cash",
"transaction": 1,
"changeGiven": [
{"id": 100, "quantity": 1},
{"id": 200, "quantity": 1}],
"changeNotGiven": 0,
"amount": 1000,
"allDenomination": [
{"id": 500, "quantity": 2},
{"id": 200, "quantity": 1},
{"id": 50, "quantity": 2}],
"receipt": true
}
}
goodBye
Este mensaje notifica que todas las operaciones han terminado sobre la transacción indicada.
transaction: identificador numérico de la transacción
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 13 of 16
Ejemplo:
{
"goodbye": {
"transaction": 1
}
}
request/response
De momento lo utilizaremos para pedir si la maquina puede entrar en mantenimiento con
'operation = maintenance', para autorizarlo y para indicar el fin de mantenimiento con
'operation = standby'
operation:
maintenance – solicita entrar en mantenimiento standby – indica el fin de mantenimiento y vuelta al estado de reposo.
Ejemplo:
{
"request": {
"operation": "maintenance"
}
}
result:
YES – permiso para entrar en mantenimiento NO – permiso denegado
Ejemplo:
{
"response": {
"result": "YES"
}
}
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 14 of 16
resetRequest/resetResponse
Se resetea el estado del cajero permitiendo de nuevo el procesamiento de nuevas operaciones.
resetRequest
timestamp: string
timestamp: fecha y hora del momento en que se envía el mensaje
Ejemplo:
{
"resetRequest": {
"timestamp": "2017-01-11T10:32:43Z"
}
}
resetResponse
result: boolean
result: se indicará si el cajero se pudo resetear correctamente
true – reseteo correcto false – reseteo fallido
Ejemplo:
{
"resetResponse": {
"result": true
}
}
error
Este mensaje se envía cuando se detecta una condición de error. Por ejemplo si el aplicativo
actual envía dos mensajes incommingVehicle seguidos, el cajero envía un mensaje de error, con
código 0002.
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 15 of 16
code: código identificador del error
CODIGO DESCRIPCIÓN
0001 OPERACION NO PERMITIDA. Se envía cuando debido al estado del aplicativo actual o del cajero no permite ciertas operaciones. Por ejemplo este mensaje se puede enviar cuando se le dice al cajero un mensaje de incommingVehicle y la maquina esta en mantenimiento.
0002 ERROR DE PROTOCOLO. Se envía cuando en caso de que no se respete el protocolo
0003 ERROR GENERAL. Se envía cuando se dé alguna excepción desconocida en la aplicación.
0004 ERROR MONÉTICA. Se envía cuando exista algún problema con los dispositivos de monética (Hopper de monedas o billetes)
0005 ERROR LECTOR DE TARJETAS. Se envía cuando exista algún problema con los lectores de tarjetas.
0006 ERROR IMPRESIÓN. Se envía cuando exista algún problema con la impresora.
Ejemplo:
{
"error": {
"code": 2
}
}
denominations
Se usa para indicar la cantidad de un tipo de moneda o billete ingresado o devuelto en el cajero
id: identificador de la moneda o billete
0 – para las monedas que van directamente al cofre, las cuales no sabemos diferenciar ya que la librería sólo comunica el importe total detectado.
5 – moneda de 5 cent. 10 – moneda de 10 cent. 20 – moneda de 20 cent. 50 – moneda de 50 cent. 100 – moneda de 1€ 200 – moneda de 2€ 500 – billete de 5€ 1000 – billete de 10€ 2000 – billete de 20€
17/01/2018
PROYECTO TÉCNICO PARA LA CONTRATACIÓN DE UN SISTEMA
AUTOSERVICIO DE ENTRADA A LAS INSTALACIONES CONECTADO A LOS EXISTENTES SISTEMAS DE CONTROL DE ACCESO A LA
UNIDAD.
Page 16 of 16
5000 – billete de 50€ 10000 – billete de 100€ 20000 – billete de 200€ 50000 – billete de 500€
quantity: número de billetes o monedas contabilizadas, a excepción de las monedas
que van directamente al cofre donde se indicaría el importe total.
Ejemplo:
Se introduce en el siguiente orden: una moneda de 50 cent., una moneda de 2€, otra moneda
de 50 cent., un billete de 5€ y finalmente otro billete de 5€.
{
"paymentCompleted": {
"paymentMode": "cash",
"transaction": 1,
"changeGiven": [
{"id": 100, "quantity": 1},
{"id": 200, "quantity": 1}],
"changeNotGiven": 0,
"amount": 1000,
"allDenomination": [
{"id": 500, "quantity": 2},
{"id": 200, "quantity": 1},
{"id": 50, "quantity": 2}],
"receipt": true
}
}