logoTestPago


puntoLibrerias 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:
  1. Parser XML Xalan
  2. Utilidades Commons lang
  3. Utilidades Commons beans
* 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.

puntoLibrerias Aplicaciones Departamentales


SDK Librerias Pasarela de Pagos para Aplicaciones Departamentales
API Aplicaciones Departamentales p12dtClasses-4.1.2

Javadoc ZIP

Jar libs (JDK 14)

Utilidades Pasarela Pagos p12ftClasses-4.1.2

Javadoc ZIP

Jar libs

Utilidades Generales r01ftShLibClasses-3.5 *

Javadoc ZIP

Jar libs

Librerías comunes necesarias

Jar comunes

* 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

puntoUtilidades 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

puntoFicheros 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:

  1. 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


  2. 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



puntoFicheros 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




puntoProcesos de las entidades financieras


¿Cual es el procedimiento a implementar por la entidad financiera?

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.

foFunctions.doRedirectClient(req,res,
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.

PaymentResult paymentResult = ef.returnPaymentResult();

Descarga Ejemplos



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:

  1. 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

  2. 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>