Dentro del microservicio ffss-account-gateway-service algunos montos que fiserv devuelve en los response los multiplicamos por 100 para convertir las cantidades a centavos. Se hizo de esta manera debido a que Spin lo hace de la misma forma en sus DTOs.
Las clases que hacen esta conversión dentro del gateway son las siguientes:
AccountDataDTOClient.java - Que corresponde al endpoint /account/details
PeerToPeerTransferFalconResponseActionDataDTOClient.java - Que corresponde al endpoint /account/FL-transferP2P
AccountBalanceResponseDTOClient.java - Que corresponde al endpoint /account/balance/details
Para contrarrestar esta multiplicación realizamos una división entre 100 al invocar los converters que pasan los valores de los DTOs de FFSS (que provienen de ffss-account-gateway-service) a los DTOs de Spin ya que estos últimos también realizan la multiplicación por 100 dentro de los getters. Con esto evitamos la doble multiplicación por 100.
A continuación se indican los converters donde se realiza la división entre 100:
Microservicio: spin-account-service - Interface: FfssAccountConverter.java
Microservicio: spin-user-inquiry-service - Interface: ffssAccountConverter.java
NOTA: Dentro de los proyectos de Spin cuando desaparezcan las feature flags isAccountAggregationServiceSwitchEnabled
y isCustomerAggregationServiceSwitchEnabled
y se deje de hacer el llamado a fiserv directamente para sustituirlo por los servicios de agregación, se tendrá que quitar la multiplicación y la división por 100 dentro de los DTOs y los converters respectivamente para que el ffss-account-gateway-service sea el único encargado de multiplicar por 100 los montos y mantener las cifras en centavos.
Add Comment