Referencia de la Clase sage.ew.tpv.Clases.DatafonoPayTef

Clase para gestionar comunicación de Sage50 con dispositivo PAYTEF para cobros por tarjeta. Soporta únicamente interficie PAYTEF EMV (HTTPV que existia en FOX deja de soportarse). El interface HTTPV esta obsoleto (según nos comentan desde el departamento técnico de PAYTEF), era para cuando se usaba el cobro con teclados que incorporaban lector de banda). Más...

Diagrama de herencias de sage.ew.tpv.Clases.DatafonoPayTef
sage.ew.tpv.Clases.DatafonoBase sage.ew.interficies.IDatafono sage.ew.interficies.IDocumentoImprimible sage.ew.interficies.ISageReportsFilterProvider sage.ew.interficies.ISageReportsDataProvider

Estructuras de datos

class  DatafonoPayTefFormaCob
 Clase para gestionar el cobro por datafono Paytef de una determinada forma de cobro. Más...
 

Tipos públicos

enum  ConfigInterface { ConfigInterface.NODETERMINADA = 0, ConfigInterface.HTTPV, ConfigInterface.EMV }
 Tipo de configuración física de datáfono PAYTEF. Más...
 

Métodos públicos

 DatafonoPayTef ()
 Constructor. Más...
 
override Dictionary< string, object > _Obtener_Filtros_SageReports (Dictionary< string, object > tdicParametros)
 Obtener los datos de la empresa Más...
 
override DataTable _Obtener_Datos_SageReports (Dictionary< string, object > tdicParametros)
 Obtener los datos del cobro Más...
 
override bool _ProcesarCobro (List< IMovCajaLinea > tlisMovCajaLineas)
 Método para realizar la transacción de cobro con tarjeta con un datáfono PAYTEF. Más...
 
override bool _ObtenerDatosCobro (IMovCajaLinea mvlItem, ref string tcFormasCobro, ref string tcImporteCobro, ref string tcDevolucion)
 Obtener los datos del cobro efectuado en tarjeta. Más...
 
override bool _ImprimirComprobanteOperacionCobro (IMovCajaLinea mvlItem)
 Imprimir comprobante de operación de tarjeta realizada por datáfono PAYTEF. Más...
 
- Métodos públicos heredados desde sage.ew.tpv.Clases.DatafonoBase
 DatafonoBase ()
 Constructor Más...
 
virtual bool _Show_Print (int tnAbrirEn)
 

Campos de datos

Dictionary< string, string > _dicCodRespuesta
 Posibles códigos de respuesta recibidos en un campo de la trama de respuesta del servidor PAYTEF (respuesta correspondiente a la petición de cobro realizada con anterioridad). Más...
 

Propiedades

override IDocPrint _DocPrint [get, set]
 DocPrint Más...
 
override String _Nombre [get]
 Nombre Más...
 
override String _ReportBase [get, set]
 ReportBase Más...
 
override string _ReportTitlePreview [get, set]
 ReportBase Más...
 
ConfigInterface _PayTefInterface [get, set]
 Tipo de interface (HTTP, EMV) Por compatibilidad con anteriores versiones se mantienen todos los elementos en la enumeración pero Sage50 solo trabaja con interficie EMV (no se soporta interficie HTTPV existente en Eurowin). El interface HTTPV está obsoleto (según nos comentan desde el departamento técnico de PAYTEF), era para cuando se usaba el cobro con lectores de banda. Más...
 
string _PayTefLocalEquipo [get, set]
 IP del equipo local en el que estamos y que tiene el lector conectado en el USB con el software PAYTEF-USB instalado. Más...
 
int _PayTefLocalPuerto [get, set]
 Puerto por el que el software del lector PAYTEF-USB se comunica con el sofware servidor de PAYTEF que atiende las peticiones del lector. Más...
 
string _PayTefLocalLector [get, set]
 Nº de serie del lector, 74210525 por ejemplo. Más...
 
string _PayTefLocalTCOD [get, set]
 Código TCOD del lector, por ejemplo, S4R3U Más...
 
string _PayTefServEquipo [get, set]
 IP donde se encuentra instalado el programa de servidor de PAYTEF. Si se encuentra instalado en el mismo equipo donde está el lector está propiedad tendrá valor idéntico a _PayTefLocalEquipo En una instalación con varios PC con lector cada uno de ellos, se recomienda instalar en cada equipo el software PAYTEF-USB y el software PAYTEF, pero también se podría instalar el software PAYTEF-USB en cada equipo con lector, y el software PAYTEF únicamente en un equipo. Más...
 
int _PayTefServPuerto [get, set]
 Nº de puerto por el que escucha el programa servidor de PAYTEF. Tiene que ser siempre un nº de puerto menos que donde escucha el software PAYTEF-USB. Si PAYTEF-USB escucha por el 8889, el software servidor de PAYTEF escuchará por el 8888. Más...
 
int _PayTefServTiempoEspera [get, set]
 Tiempo de espera una vez se conecta al servidor en ms, antes de enviar la petición de transacción. No poner un valor demasiado alto p.e. 10 segundos pues se desconectaria al pasar tanto tiempo sin hacer nada. Poner 250 ms p.e. Más...
 
int _PayTefLectorTipo [get, set]
 _PayTefLectorTipo Más...
 
string _PayTefLectorSeparador [get, set]
 _PayTefLectorSeparador Más...
 
int _PayTefLectorPuerto [get, set]
 _PayTefLectorPuerto Más...
 
int _PayTefLectorTiempo [get, set]
 _PayTefLectorTiempo Más...
 
int _PayTefContador [get, set]
 Contador interno de transacciones PAYTEF realizadas. Se guarda en TPV!CONF_TPV.CONT_OPER Más...
 
- Propiedades heredados desde sage.ew.tpv.Clases.DatafonoBase
Boolean _Imprimir [get, set]
 Indica si se ha de imprimir Más...
 
string _Mensaje_Error [get, set]
 Mensaje de error caso de que alguna operación no se lleve a cabo correctamente. Más...
 
virtual String _Fecha [get]
 Fecha Más...
 
virtual String _Nombre [get]
 Nombre Más...
 
virtual String _ReportBase [get, set]
 ReportBase Más...
 
virtual String _ReportTitlePreview [get, set]
 Título para el preview Más...
 
virtual IDocPrint _DocPrint [get, set]
 DocPrint Más...
 
virtual String _Empresa [get, set]
 Empresa Más...
 
- Propiedades heredados desde sage.ew.interficies.IDatafono
string _Mensaje_Error [get, set]
 Mensaje de error caso de que alguna operación no se lleve a cabo correctamente. Más...
 
Boolean _Imprimir [get, set]
 Imdica si se ha de imprimir el comprobante Más...
 
- Propiedades heredados desde sage.ew.interficies.IDocumentoImprimible
string _Fecha [get]
 Fecha Más...
 
string _Empresa [get, set]
 Empresa que origina la impresión Más...
 
string _ReportBase [get, set]
 Nombre del report que se va a utilizar para imprimir el documento Más...
 
string _ReportTitlePreview [get, set]
 PE-103490 Nombre del documento que se va a utilizar para la previsualización el documento Más...
 
string _Nombre [get]
 Nombre que se le va a dar al trabajo de impresión Más...
 
IDocPrint _DocPrint [get, set]
 Referencia al objeto de impresión. Se utiliza para finalizar la interacción entre el Documento y el objeto de impresión una vez terminado el trabajo. Más...
 

Descripción detallada

Clase para gestionar comunicación de Sage50 con dispositivo PAYTEF para cobros por tarjeta. Soporta únicamente interficie PAYTEF EMV (HTTPV que existia en FOX deja de soportarse). El interface HTTPV esta obsoleto (según nos comentan desde el departamento técnico de PAYTEF), era para cuando se usaba el cobro con teclados que incorporaban lector de banda).

Al heredar de DatafonoBase, implícitamente ya cumple la interficie IDatafono.

Documentación técnica en: $.ES.Sage50.ES.Sage50

Definición en la línea 29 del archivo DatafonoPayTef.cs.

Documentación de las enumeraciones miembro de la clase

◆ ConfigInterface

Tipo de configuración física de datáfono PAYTEF.

Por comptabilidad se mantienen los dos tipos que había en Eurowin, si bien en Sage50 se soporta únicamente interficie PAYTEF EMV (HTTPV que existia en Eurowin deja de soportarse). El interface HTTPV está obsoleto (según nos comentan desde el departamento técnico de PAYTEF), era para cuando se usaba el cobro con lectores de banda.

Valores de enumeraciones
NODETERMINADA 

Configuración PAYTEF no determinada todavía.

HTTPV 

Configuración HTTPV

EMV 

Configuración EMV

Definición en la línea 40 del archivo DatafonoPayTef.cs.

Documentación del constructor y destructor

◆ DatafonoPayTef()

sage.ew.tpv.Clases.DatafonoPayTef.DatafonoPayTef ( )
inline

Constructor.

Definición en la línea 696 del archivo DatafonoPayTef.cs.

Documentación de las funciones miembro

◆ _ImprimirComprobanteOperacionCobro()

override bool sage.ew.tpv.Clases.DatafonoPayTef._ImprimirComprobanteOperacionCobro ( IMovCajaLinea  mvlItem)
inlinevirtual

Imprimir comprobante de operación de tarjeta realizada por datáfono PAYTEF.

Parámetros
mvlItemItem de movimiento caja linea que tiene el cobro efectuado en tarjeta.
Devuelve
Devuelve true si se ha podido realizar la impresión correctamente, false caso contrario.

Para el caso de PAYTEF el report imprimido estará en función del tipo de interface PAYTEF (HTTP o EMV, según configuración de Addon TPV). Fox utilizaba en caso de interface HTTP el report COMPROBA.FRX, y en caso de interface EMV el report COMP_EMV.frx

Reimplementado de sage.ew.tpv.Clases.DatafonoBase.

Definición en la línea 1256 del archivo DatafonoPayTef.cs.

◆ _Obtener_Datos_SageReports()

override DataTable sage.ew.tpv.Clases.DatafonoPayTef._Obtener_Datos_SageReports ( Dictionary< string, object >  tdicParametros)
inlinevirtual

Obtener los datos del cobro

Parámetros
tdicParametros
Devuelve

Reimplementado de sage.ew.tpv.Clases.DatafonoBase.

Definición en la línea 1080 del archivo DatafonoPayTef.cs.

◆ _Obtener_Filtros_SageReports()

override Dictionary<string, object> sage.ew.tpv.Clases.DatafonoPayTef._Obtener_Filtros_SageReports ( Dictionary< string, object >  tdicParametros)
inlinevirtual

Obtener los datos de la empresa

Parámetros
tdicParametros
Devuelve

Reimplementado de sage.ew.tpv.Clases.DatafonoBase.

Definición en la línea 1064 del archivo DatafonoPayTef.cs.

◆ _ObtenerDatosCobro()

override bool sage.ew.tpv.Clases.DatafonoPayTef._ObtenerDatosCobro ( IMovCajaLinea  mvlItem,
ref string  tcFormasCobro,
ref string  tcImporteCobro,
ref string  tcDevolucion 
)
inlinevirtual

Obtener los datos del cobro efectuado en tarjeta.

Parámetros
mvlItemItem de movimiento caja linea que tiene el cobro efectuado en tarjeta.
tcFormasCobroVariable de formas de cobro.
tcImporteCobroVariable de importe cobro.
tcDevolucionVariable devolución si/no.
Devuelve
Devuelve true si se ha podido ejecutar correctamente la obtención de los datos de la operación, false caso contrario.

Reimplementado de sage.ew.tpv.Clases.DatafonoBase.

Definición en la línea 1189 del archivo DatafonoPayTef.cs.

◆ _ProcesarCobro()

override bool sage.ew.tpv.Clases.DatafonoPayTef._ProcesarCobro ( List< IMovCajaLinea tlisMovCajaLineas)
inlinevirtual

Método para realizar la transacción de cobro con tarjeta con un datáfono PAYTEF.

Parámetros
tlisMovCajaLineasLista con los importes que se entregan en las diferentes formas de cobro de TPV. Se pasan todas las cantidades declaradas por el usuario en las diferentes formas de cobro aunque el objeto de este método sea únicamente procesar la transacción en el datáfono con el importe declarado en la forma de cobro tarjeta, pero se pasan los importes declarados en todas las formas de cobro por si fuesen necesarios con algún objetivo dentro de la implementación de la transacción el datáfono. Lo normal será hacer uso del importe declarado en la forma de cobro que sea de tipo Tarjeta.
Devuelve
Devuelve true si se ha podido ejecutar correctamente la transacción con el datáfono, false caso contrario.

Si la ejecución de Sage50 produce la llamada a este método es seguro que al menos una de las formas de cobro que se reciben en la lista es de tipo tarjeta y existe importe declarado en la misma, motivo por el cual se debe realizar la transacción con el datáfono y se delega dicha tarea en este método. Este método lo puede llamar Sage50 desde los diferentes formularios que permiten realizar cobro en tarjeta (frmCobrosCaja, frmCobrosCajaMultiples, frmCobrosVarios) La implementación que se haga de este método deberá hacer todo, es decir, conectar con el datáfono, realizar la transacción (positiva o negativa-devolución) y guardar los datos de la operación resultante en el campo TPV!TIKETS.NUMCOBRO, y el detalle de los resultados de la transacción en la tabla TPV!OP_TARJETA o TPV!OP_EMV en función de cómo se configura PAYTEF en el addon TPV.

Reimplementado de sage.ew.tpv.Clases.DatafonoBase.

Definición en la línea 1131 del archivo DatafonoPayTef.cs.

Documentación de los campos

◆ _dicCodRespuesta

Dictionary<string, string> sage.ew.tpv.Clases.DatafonoPayTef._dicCodRespuesta
Valor inicial:
= new Dictionary<string, string>()
{
{ "000", "Operación aprobada." },
{ "101", "Tarjeta caducada." },
{ "102", "Tarjeta en excepción transitoria o baja sospecha de fraude. La tarjeta está bloqueada temporamente, el usuario debe contactar con su banco para conocer el motivo." },
{ "107", "Llamar al emisor de la tarjeta. El centro autorizador deniega la operación y solicita que al usuario que se ponga en contacto con el banco emisor." },
{ "117", "PIN incorrecto. El usuario ha introducido mal el PIN de la tarjeta." },
{ "180", "Tarjeta ajena al servicio. Es posible que el usuario esté usando un tipo de tarjeta no soportada por el servicio." },
{ "190", "Denegación sin motivo especificado. Puede ser debido a que la tarjeta no ha superado los protocolos de seguridad, el usuario debe contactar con la entidad emisora de la tarjeta." },
{ "201", "Tarjeta caducada." },
{ "202", "Tarjeta en excepción transitoria o baja sospecha de fraude con retirada de tarjeta. La tarjeta está bloqueada temporalmente (quizás por haber superado el límite de gasto mensual) o bien está bajo sospecha de fraude. En ambos casos el usuario debe contactar con el banco." },
{ "206", "Excedido el número de intentos de introducción del PIN." },
{ "904", "Comercio no registado. Hay un problema de configuración del código de comercio en la tienda. Contactar con el banco con el que se ha contratado el servicio TPV para obtener el código de comercio correcto." },
{ "909", "Error de sistema. Hubo un error en el sistema, contactar con Redsys para recabar información." },
{ "950", "Operación de devolución no permitida. Contactar con el banco para conocer si es una opción extra a activar o requiere ampliar su contrato de TPV." },
{ " ", "Operación denegada por cancelación del lector. El usuario ha quitado la tarjeta del lector antes de terminar la operación, o se ha tardado mucho en recibir respuesta de la entidad procesadora de cobro o del centro autorizador, o ha habido un error en la confirmación de la operación." },
}

Posibles códigos de respuesta recibidos en un campo de la trama de respuesta del servidor PAYTEF (respuesta correspondiente a la petición de cobro realizada con anterioridad).

Definición en la línea 668 del archivo DatafonoPayTef.cs.

Documentación de propiedades

◆ _DocPrint

override IDocPrint sage.ew.tpv.Clases.DatafonoPayTef._DocPrint
getset

DocPrint

Definición en la línea 64 del archivo DatafonoPayTef.cs.

◆ _Nombre

override String sage.ew.tpv.Clases.DatafonoPayTef._Nombre
get

Nombre

Definición en la línea 80 del archivo DatafonoPayTef.cs.

◆ _PayTefContador

int sage.ew.tpv.Clases.DatafonoPayTef._PayTefContador
getset

Contador interno de transacciones PAYTEF realizadas. Se guarda en TPV!CONF_TPV.CONT_OPER

Definición en la línea 661 del archivo DatafonoPayTef.cs.

◆ _PayTefInterface

ConfigInterface sage.ew.tpv.Clases.DatafonoPayTef._PayTefInterface
getset

Tipo de interface (HTTP, EMV) Por compatibilidad con anteriores versiones se mantienen todos los elementos en la enumeración pero Sage50 solo trabaja con interficie EMV (no se soporta interficie HTTPV existente en Eurowin). El interface HTTPV está obsoleto (según nos comentan desde el departamento técnico de PAYTEF), era para cuando se usaba el cobro con lectores de banda.

Definición en la línea 517 del archivo DatafonoPayTef.cs.

◆ _PayTefLectorPuerto

int sage.ew.tpv.Clases.DatafonoPayTef._PayTefLectorPuerto
getset

_PayTefLectorPuerto

Definición en la línea 644 del archivo DatafonoPayTef.cs.

◆ _PayTefLectorSeparador

string sage.ew.tpv.Clases.DatafonoPayTef._PayTefLectorSeparador
getset

_PayTefLectorSeparador

Definición en la línea 637 del archivo DatafonoPayTef.cs.

◆ _PayTefLectorTiempo

int sage.ew.tpv.Clases.DatafonoPayTef._PayTefLectorTiempo
getset

_PayTefLectorTiempo

Definición en la línea 651 del archivo DatafonoPayTef.cs.

◆ _PayTefLectorTipo

int sage.ew.tpv.Clases.DatafonoPayTef._PayTefLectorTipo
getset

_PayTefLectorTipo

Definición en la línea 630 del archivo DatafonoPayTef.cs.

◆ _PayTefLocalEquipo

string sage.ew.tpv.Clases.DatafonoPayTef._PayTefLocalEquipo
getset

IP del equipo local en el que estamos y que tiene el lector conectado en el USB con el software PAYTEF-USB instalado.

Creo que esta propiedad no se utiliza por que la solicitud de transacción de cobro no se envía a lo que pone en esta propiedad sino a lo que pone en la propiedad _PayTefServEquipo que es la IP donde está el software PAYTEF que atiende las peticiones de cobro, y luego este software PAYTEF ya se comunica con el software PAYTEF-USB que es quien controla el lector.

Definición en la línea 534 del archivo DatafonoPayTef.cs.

◆ _PayTefLocalLector

string sage.ew.tpv.Clases.DatafonoPayTef._PayTefLocalLector
getset

Nº de serie del lector, 74210525 por ejemplo.

Contrariamente a las dos propiedades anteriores (_PayTefLocalEquipo, _PayTefLocalPuerto) esta propiedad sí que se utiliza.

Definición en la línea 559 del archivo DatafonoPayTef.cs.

◆ _PayTefLocalPuerto

int sage.ew.tpv.Clases.DatafonoPayTef._PayTefLocalPuerto
getset

Puerto por el que el software del lector PAYTEF-USB se comunica con el sofware servidor de PAYTEF que atiende las peticiones del lector.

Creo que esta propiedad no se utiliza por que la solicitud de transacción de cobro no se envía a lo que pone en esta propiedad sino a lo que pone en la propiedad _PayTefServPuerto que es el puerto por el que escucha el el software PAYTEF que atiende las peticiones de cobro, y luego este software PAYTEF ya se comunica con el software PAYTEF-USB que es quien controla finalmente el lector.

Definición en la línea 548 del archivo DatafonoPayTef.cs.

◆ _PayTefLocalTCOD

string sage.ew.tpv.Clases.DatafonoPayTef._PayTefLocalTCOD
getset

Código TCOD del lector, por ejemplo, S4R3U

Contrariamente a las dos propiedades anteriores (_PayTefLocalEquipo, _PayTefLocalPuerto) esta propiedad sí que se utiliza.

Definición en la línea 570 del archivo DatafonoPayTef.cs.

◆ _PayTefServEquipo

string sage.ew.tpv.Clases.DatafonoPayTef._PayTefServEquipo
getset

IP donde se encuentra instalado el programa de servidor de PAYTEF. Si se encuentra instalado en el mismo equipo donde está el lector está propiedad tendrá valor idéntico a _PayTefLocalEquipo En una instalación con varios PC con lector cada uno de ellos, se recomienda instalar en cada equipo el software PAYTEF-USB y el software PAYTEF, pero también se podría instalar el software PAYTEF-USB en cada equipo con lector, y el software PAYTEF únicamente en un equipo.

Para más datos revisar el documento en TFS: $.ES.Sage50.ES.Sage50.paytef.txt

Las peticiones de transacción se envían a esta IP y puerto.

Definición en la línea 587 del archivo DatafonoPayTef.cs.

◆ _PayTefServPuerto

int sage.ew.tpv.Clases.DatafonoPayTef._PayTefServPuerto
getset

Nº de puerto por el que escucha el programa servidor de PAYTEF. Tiene que ser siempre un nº de puerto menos que donde escucha el software PAYTEF-USB. Si PAYTEF-USB escucha por el 8889, el software servidor de PAYTEF escuchará por el 8888.

Las peticiones de transacción se envían a esta IP y puerto.

Definición en la línea 599 del archivo DatafonoPayTef.cs.

◆ _PayTefServTiempoEspera

int sage.ew.tpv.Clases.DatafonoPayTef._PayTefServTiempoEspera
getset

Tiempo de espera una vez se conecta al servidor en ms, antes de enviar la petición de transacción. No poner un valor demasiado alto p.e. 10 segundos pues se desconectaria al pasar tanto tiempo sin hacer nada. Poner 250 ms p.e.

No confundir con el tiempo máximo de espera de la respuesta del servidor una vez se ha enviado la petición de transacción de cobro. Ese tiempo máximo lo prefijamos por código según lo que se aconseja en la documentación técnica de PAYTEF.

"El timeout esperando la respuesta de PAYTEF debe ser como mínimo de 2 minutos, para dar tiempo al usuario a solicitar la tarjeta al cliente y que la operación se efectúe, si bien recomendamos ampliarlo a 4 minutos, es decir, 240000 ms."

Definición en la línea 617 del archivo DatafonoPayTef.cs.

◆ _ReportBase

override String sage.ew.tpv.Clases.DatafonoPayTef._ReportBase
getset

ReportBase

Definición en la línea 91 del archivo DatafonoPayTef.cs.

◆ _ReportTitlePreview

override string sage.ew.tpv.Clases.DatafonoPayTef._ReportTitlePreview
getset

ReportBase

Definición en la línea 106 del archivo DatafonoPayTef.cs.


La documentación para esta clase fue generada a partir del siguiente fichero: