La librería de Finkok debe cubrir la mayor cantidad de servicios ofrecidos por la API de Finkok. Para acceder a la documentación de Finkok requieres usuario y contraseña (bad finkok, bad!).
Para cada servicio que vayamos a consumir usar el patrón de diseño command handler con el que:
- El comando es un objeto que contiene los parámetros de la acción, lo llamaremos
Command. - El handler es un objeto que realiza la acción, lo llamaremos
Service. - El invoker es quien llama a la acción (en este caso, nuestros tests).
Los parámetros de configuración de conexión con finkok deben estar en una clase especializada FinkokSettings
y esta clase debe ser inyectada al Service, nunca al Command.
Como todas las comunicaciones son usando SOAP, los Service también requieren de una fábrica de
objetos de tipo \SoapClient.
Por lo tanto, parece que tenemos dos objetos que son relevantes y parece que serán usados siempre:
SoapClientFactory y FinkokSettings.
Voy a evitar los servicios que signifiquen enviar a Finkok el certificado o llave privada. Nunca compartas tus certificados y llaves privadas, ni con tu PAC.
Otra característica importante es que Finkok tiene dos entornos de trabajo y en cada uno tiene su réplica de los servicios que ofrece.
- Producción:
https://facturacion.finkok.com - Pruebas:
https://demo-facturacion.finkok.com