Cargando...
Buscando...
Nada coincide
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 herencia 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 { NODETERMINADA = 0 , HTTPV , EMV }
 Tipo de configuración física de datáfono PAYTEF. Más...
 

Métodos públicos

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

Propiedades

override IDocPrint _DocPrint [get, set]
 DocPrint.
 
override String _Nombre [get]
 Nombre.
 
override String _ReportBase [get, set]
 ReportBase.
 
override string _ReportTitlePreview [get, set]
 ReportBase.
 
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.
 
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.
 
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.
 
string _PayTefLocalLector [get, set]
 Nº de serie del lector, 74210525 por ejemplo.
 
string _PayTefLocalTCOD [get, set]
 Código TCOD del lector, por ejemplo, S4R3U.
 
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.
 
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.
 
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.
 
int _PayTefLectorTipo [get, set]
 _PayTefLectorTipo
 
string _PayTefLectorSeparador [get, set]
 _PayTefLectorSeparador
 
int _PayTefLectorPuerto [get, set]
 _PayTefLectorPuerto
 
int _PayTefLectorTiempo [get, set]
 _PayTefLectorTiempo
 
int _PayTefContador [get, set]
 Contador interno de transacciones PAYTEF realizadas. Se guarda en TPV!CONF_TPV.CONT_OPER.
 
- Propiedades heredados de sage.ew.tpv.Clases.DatafonoBase
Boolean _Imprimir [get, set]
 Indica si se ha de imprimir.
 
string _Mensaje_Error [get, set]
 Mensaje de error caso de que alguna operación no se lleve a cabo correctamente.
 
virtual String _Fecha [get]
 Fecha.
 
virtual String _Nombre [get]
 Nombre.
 
virtual String _ReportBase [get, set]
 ReportBase.
 
virtual String _ReportTitlePreview [get, set]
 Título para el preview.
 
virtual IDocPrint _DocPrint [get, set]
 DocPrint.
 
virtual String _Empresa [get, set]
 Empresa.
 

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: $\tfs\Sage.ES.Sage50\main\Sage.ES.Sage50\Documentacion\Datefono_Paytef

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 de constructores y destructores

◆ DatafonoPayTef()

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

Constructor.

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

Documentación de 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 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.

Implementa sage.ew.interficies.IDocumentoImprimible.

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

◆ _Nombre

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

Nombre.

Implementa sage.ew.interficies.IDocumentoImprimible.

Definición en la línea 79 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 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: $\tfs\Sage.ES.Sage50\main\Sage.ES.Sage50\Documentacion\Datefono_Paytef\config.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.

Implementa sage.ew.interficies.IDocumentoImprimible.

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

◆ _ReportTitlePreview

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

ReportBase.

Implementa sage.ew.interficies.IDocumentoImprimible.

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


La documentación de esta clase está generada del siguiente archivo: