Utilidades
- Acceso a la Pasarela de Pagos de pruebas: TESTPAGO
- Acceso a la utilidad de generación de recibos, con dígitos de control válidos.
Destacamos
Proyecto de funcionamiento básico de la pasarela (Cursillo)
Incorporación de una aplicación a la Pasarela de Pagos:
- P02 - Incorporación de aplicaciones
- API Aplicaciones Departamentales (p12dt)
- Utilidades Pasarela de Pagos (p12ft)
- Utilidades generales (r01ft)
Incorporación de una una entidad financiera:
Documentación Técnica
- Especificaciones funcionales
- Especificaciones Técnicas para Aplicaciones Departamentales
- Especificaciones Técnicas para Entidades Financieras
- Especificaciones Técnicas para Dispositivos Móviles
- Modelo de liquidación
Configuración, literales y ficheros de propiedades
- Configuración y ficheros de Propiedades
- Literales (librería de textos literales a visualizar en referencia a los pagos)
- Contenidos estáticos y jsp (para la emisión e impresión de justificantes)
Fecha última actualización de librerias: 3 Febrero 2015
Librerias Entidades Finanacieras
SDK Librerias Pasarela de Pagos para Entidades Financieras | ||||
---|---|---|---|---|
Utilidades Pasarela Pagos | p12f 4.0.0 | Javadoc ZIP | Jar libs | Source Code: ClassMap: |
API Entidades Financieras | p12e 4.0.0 | Javadoc ZIP | Jar libs | Source Code: Config: |
Utilidades Generales | r01f 2.33.1 * | Javadoc ZIP | Jar libs | Necesita:
|
* Por cambios en la numeración de la r01f numeros superiores no corresponden a la última versión. Por lo que es conveniente que se descargen la versión actual. |
Librerias Aplicaciones Departamentales
SDK Librerias Pasarela de Pagos para Aplicaciones Departamentales | ||||
---|---|---|---|---|
API Aplicaciones Departamentales | p12dtClasses-4.1.2 | Jar libs (JDK 14) |
||
Utilidades Pasarela Pagos | p12ftClasses-4.1.2 | |||
Utilidades Generales | r01ftShLibClasses-3.5 * | |||
Librerías comunes necesarias | ||||
* Por cambios en la numeración de la r01f numeros superiores no corresponden a la última versión. Por lo que es conveniente que se descargen la versión actual. |
Las librerías antiguas son: p12d 4.0.0 - p12f 4.0.0 - r01f 2.33.1 *
SDK PHP Pasarela de Pagos para aplicaciones departamentales | |||
---|---|---|---|
Librerías PHP desarrolladas por Zundan | Código opensource distribuido bajo licencia GNU/GPL | Zundan PHP SDK | Zundan PHP SDK |
Librería PHP y ejemplos
Puede obtenerse la versión más actualizada, así como ver los ejemplos online, en la web de P12PHP. Existe además un repositorio Subversion en SourceForge: svn co https://p12php.svn.sourceforge.net/svnroot/p12php p12php |
Código opensource distribuido bajo licencia Apache 2.0 | P12PHP(v1.1.1) | P12PHP |
Utilidades Aplicaciones Departamentales
Utilidades para descargar | ||
---|---|---|
Generador de pdf en local. Para probar el correcto funcionamiento de las Plantillas | Contiene los archivos necesarios para su implementación en local y un documento HELP.doc con ayuda adicional. | GeneradorPDF |
Ejemplos nuevas plantillas V3 | Las nuevas plantillas que se creen se crean en esta versión | EjemplosPlantillasV3 |
Ficheros de configuración
¿Qué son los ficheros de configuración?
Son ficheros que indican propiedades y configuraciones de los módulos usados por Entidades Financieras y Administraciones.
¿Cuáles son los ficheros de configuración?
- p12f.properties.xml
- p12e.properties.xml (entidades financieras)
- p12d.properties.xml (aplicaciones departamentales)
- r01f.properties.xml
¿De dónde descargarse los ficheros de configuración?
Ficheros de configuración y propiedades | |
---|---|
Ficheros de properties y classmap (Entorno de Pruebas) |
p12Config |
¿Dónde colocar los ficheros de configuración?
Existen dos posibilidades:
-
Por defecto, se colocarán bajo un directorio que esté en el classPath donde se crearán los directorios p12f, r01f, p12e.
[directorio en classPath]/p12f/p12f.properties.xml
-
Si se quiere cambiar el comportamiento por defecto se pueden usar variables del sistema en el arranque del Servidor de Aplciaciones:
Ejemplo 1: Modificar el patrón de carga vía classPath. Para este caso se usan dos variables de sistema.
-DEJIE_PROPERTY_LOADER=classPathLoader
-DEJIE_PROPERTIES_PATTERN=
/[entityCode]/[entityCode].properties.xml-DEJIE_PROPERTY_LOADER=classPathLoader indica que se debe cargar de un directorio que esté en el classPath y DEJIE_PROPERTIES_PATTERN indica el patrón de la ruta en el que estará el directorio del classPath. Por ejemplo, si la ruta del classPath es D:/eadmin/config y el directorio del classPath está dentro de config se quedará como /p12d/p12/p12d.properties.xml.
Ejemplo 2: Modificar el patrón de carga vía ruta física. Se usan tres variables de sistema.
-DEJIE_PROPERTY_LOADER=fileLoader
-DEJIE_CONFIG_FILES_ROOT=filePathLoader
-DEJIE_PROPERTIES_PATTERN=
/[entityCode]/[entityCode].properties.xml-DEJIE_PROPERTY_LOADER=fileLoader indica que se debe cargar de un directorio físico. -DEJIE_CONFIG_FILES_ROOT indica la ruta física de la cual se va a cargar el fichero, por ejemplo, D:/properties/config. -DEJIE_PROPERTIES_PATTERN indica el patrón de la ruta que sige dentro de ese directorio físico, siguiendo el ejemplo anterior sería /p12d/p12/p12d.properties.xml
Ficheros classMap
¿Qué son los ficheros classMap?
Son ficheros que sirven para transformar de xml a objetos y viceversa.
¿Cuales son los ficheros classMap?
classMap.xml
¿Dónde colocar los ficheros classMap?
La ruta donde colocar los ficheros classMap se especificará en el fichero p12f.properties.xml, en el tag objectMapPath. Por ejemplo, /datosSoft/p12f/file/classMap.xml
Procesos de las entidades financieras
¿Cual es el procedimiento a implementar por la entidad financiera?
El procedimiento a implementar es el siguiente:
1. En la entrada de la entidad financiera (por ejemplo, EFServlet) instanciar una clase que implemente el interfaz FinantialOrgFunctions y que contiene la lógica propia de la entidad financiera.
// Se instancia la clase que implementa la logica de la entidad financiera
FinantialOrgFunctions foFunctions = new FinantialOrgFunctionsImpl();
2. En el punto de recepción de pagos desde la pasarela, se recibe el XML con el lote de pagos y se inicializa la clase EFClass
// Al hacer esto, automáticamente, la clase EF solicita la validación del pago contra la Pasarela del Gobierno
FClass ef = new EFClass(foFunctions);ef.setPaymentData(paymentDataXML,
presentationDataXML,
protocolDataXML,
request,response)
3. La clase EFClass internamente realiza las dos siguientes tareas:
- Validación de los pagos recibidos contra la pasarela de pagos.
- Validaciones internas contra el host, a implementar por la entidad financieras.
4. Redirigir a la página de login de la aplicación de la EntidadFinanciera, implementando el método abstracto doRedirectClient de la clase que implementada por la EntidadFinanciera FinantialOrgFunctions.
urlLogin,
ef);
Para implementar este método en la clase foFunctions se puede utilizar la clase auxiliar p12e.exe.pasarelaPagos.redirection.ClientRedirector que tiene varios métodos de redirigir al login:
- Poniendo en session todos los datos del pago (clase ef) y redirigiendo por el servidor.
- Poniendo en la request todos los datos del pago (clase ef) y redirigiendo por el servidor.
- Haciendo una redirección via cliente.
5. En la página de login se accede a la banca electrónica y comienza el pago del lote, para lo cual se recuperan los datos (clase ef), bien de la sesion, de la request o se reconstruyen de un parámetro (dependiendo de la forma en la que se ha hecho la redirección).
6. Servicio de Pago, por ejemplo, obtener de nuevo la instancia de la clase EFClass e ir haciendo cada uno de los pagos en el host y actualizando el estado del mismo en la clase ef :
// Método 1: Redirección de servidor utilizando session.
En la llamada a setPaymentData se puso en session el objeto EFClass -HttpSession session = request.getSession(); EFClass ef = (EFClass)session.getAttribute(SessionAttrs.EFCLASS);// Método 2: Redirección de servidor sin utilizar session. En la llamada a setPaymentData se puso en la request el objeto EFClass
EFClass ef = (EFClass)request.getAttribute(RequestAttrs.EFCLASS);// Método 3: Redirección de servidor a través del cliente. Se utilizó una redirección de cliente para llegar a esta página. En la redirección se pasaron como parámetro los XML y ahora hay que obtener de nuevo los objetos.
String paymentDataXML = request.getParameter(RequestParams.PAYMENT_DATA); String presentationDataXML = request.getParameter(RequestParams.PRESENTATION_DATA); String protocolDataXML = request.getParameter(RequestParams.PROTOCOL_DATA); EFClass ef = new EFClass(paymentDataXML, presentationDataXML, protocolDataXML);Una vez obtenido la EFClass por cualquiera de los tres métodos, se recorre el lote de pagos , y por cada pago:
- Se inicia una transacción contra el host. (transaccionPago)
- Se guarda la respuesta de pago en la clase EFClass (setSinglePaymentResult)
// Consultar Ejemplo Completo
PaymentData paymentData = ef.getPaymentData();Pago currPago = null;
for (Iterator it = paymentData.pagos.keySet().iterator(); it.hasNext();)
{
currPago = (Pago) paymentData.pagos.get(it.next());
HostEntidadFinanciera.transaccionPago(cpr, rafaga);
ef.setSinglePaymentResult(currPago.id, currPago.datosPago ,estado);
}
7. Devolver el resultado a la Pasarela de Pagos.
Conectividad entre las entidades financieras y la pasarela
Las llamadas a los métodos de la interfaz GatewayAPI en la parte de la entidad financiera se transforman en llamadas XML - RPC que se ejecutarán en la parte de la Pasarela de Pagos.
Para posibilitar esta comunicación es neceasario:
- Comunicación entre el servidor donde esté implementado el módulo de la entidad financiera y la pasarela de pagos.
Se deber verificar que desde el servidor donde esté implantado el módulo de la entidad financiera se tenga acceso (post via HttpConnection) hacia el servlet encargado de la escucha de peticiones XML - RPC: https://mipago.sandbox.euskadi.eus/p12jWar/p12jRPCDistpacherServlet
- Configuración del fichero de propiedades P12E (BusinnessDelegate)
Una vez asegurada la posibiliad de conexión con el RPCDistpacherServlet se debe indicar donde está la ruta de los ficheros de mapeo: xoMapFil
<businessDelegatesConfig> <businessDelegate oid='gateway'> <bzdType>RPCServlet</bzdType> <bzdClass>p12e.exe.pasarelapagos.gatewayclient.GatewayBzd</bzdClass> <bzdRemote> <rpcServlet>https://mipago.sandbox.euskadi.eus/p12jWar/p12jRPCDistpacherServlet</rpcServlet> <module>IG</module> <xoMapFile>/datos/p12f/file/classMap.xml</xoMapFile> //Indicar la ruta del fichero de mapeo </bzdRemote> </businessDelegate> </businessDelegatesConfig>