joaquin box muñoz ingeniero informático - … · proyecto tÉcnico para la contrataciÓn de un...

16
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

Upload: phungngoc

Post on 30-Sep-2018

213 views

Category:

Documents


0 download

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

}

}