diff --git a/src/main/java/cl/transbank/webpay/example/controllers/BaseController.java b/src/main/java/cl/transbank/webpay/example/controllers/BaseController.java index 3bae43e..a228e22 100644 --- a/src/main/java/cl/transbank/webpay/example/controllers/BaseController.java +++ b/src/main/java/cl/transbank/webpay/example/controllers/BaseController.java @@ -1,7 +1,10 @@ package cl.transbank.webpay.example.controllers; import com.google.gson.GsonBuilder; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializer; +import java.math.BigDecimal; import java.util.Random; public abstract class BaseController { @@ -13,8 +16,20 @@ public abstract class BaseController { protected static final String VIEW_RECOVER_ERROR = "error/oneclick/recover"; protected static final String VIEW_REJECTED_ERROR = "error/oneclick/rejected"; + private static final JsonSerializer DOUBLE_SERIALIZER = (value, type, ctx) -> { + if (value.isNaN() || value.isInfinite()) { + return new JsonPrimitive(value); + } + return new JsonPrimitive(new BigDecimal(value.toString()).stripTrailingZeros().toPlainString()); + }; + public String toJson(Object obj) { - return (new GsonBuilder().setPrettyPrinting().create()).toJson(obj); + return new GsonBuilder() + .setPrettyPrinting() + .registerTypeAdapter(Double.class, DOUBLE_SERIALIZER) + .registerTypeAdapter(double.class, DOUBLE_SERIALIZER) + .create() + .toJson(obj); } protected String getRandomNumber() { diff --git a/src/main/resources/templates/oneclick_mall/authorize.html b/src/main/resources/templates/oneclick_mall/authorize.html index 9a0f752..9575bc9 100644 --- a/src/main/resources/templates/oneclick_mall/authorize.html +++ b/src/main/resources/templates/oneclick_mall/authorize.html @@ -120,7 +120,7 @@

Otras utilidades

class="tbk-input-text" type="text" name="amount" - th:value="${detail.amount}" + th:value="${T(java.math.BigDecimal).valueOf(detail.amount).stripTrailingZeros().toPlainString()}" /> diff --git a/src/main/resources/templates/oneclick_mall_deferred/authorize.html b/src/main/resources/templates/oneclick_mall_deferred/authorize.html index e39a89c..221dc6b 100644 --- a/src/main/resources/templates/oneclick_mall_deferred/authorize.html +++ b/src/main/resources/templates/oneclick_mall_deferred/authorize.html @@ -1,21 +1,21 @@
-
+
+

Webpay Oneclick Mall Diferido - Autorizar pago

-

Webpay Oneclick Mall Diferido - Autorizar pago

+

+ En este primer paso, procederemos a autorizar una transacción en la + tarjeta que ha sido previamente inscrita. +

-

- En este primer paso, procederemos a autorizar una transacción en la tarjeta que ha sido previamente - inscrita. -

+

Paso 1: Petición

-

Paso 1: Petición

+

+ Ahora que contamos con el username y el tbkUser obtenidos + durante la inscripción, estamos listos para autorizar transacciones en la + tarjeta inscrita. +

-

- Ahora que contamos con el username y el tbkUser obtenidos durante la inscripción, - estamos listos para autorizar transacciones en la tarjeta inscrita. -

- -

+    

 var options = new WebpayOptions(
     IntegrationCommerceCodes.ONECLICK_MALL_DEFERRED,
     IntegrationApiKeys.WEBPAY,
@@ -39,66 +39,96 @@ 

Paso 1: Petición

var resp = transaction.authorize(username, tbkUser, buyOrder, details);
-

Paso 2: Respuesta

- -

- Una vez que la transacción ha sido autorizada, Transbank proporcionará la siguiente información. - Es fundamental conservar esta respuesta y verificar que el campo responseCode tenga un valor de - 0 y que el campo status sea AUTHORIZED. -

- -
- -

¡Casi listo!

- -

- Ya puedes mostrar al usuario una página de éxito de la transacción. - Debes tener en cuenta que la transacción aún no ha sido capturada, solo se ha retenido el saldo en la - tarjeta del Tarjetahabiente. -

- -
-
- - -
-
-
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - -
-
+

Paso 2: Respuesta

+ +

+ Una vez que la transacción ha sido autorizada, Transbank proporcionará la + siguiente información. Es fundamental conservar esta respuesta y verificar + que el campo responseCode tenga un valor de 0 y que el campo + status sea AUTHORIZED. +

+ +
+ +

¡Casi listo!

+ +

+ Ya puedes mostrar al usuario una página de éxito de la transacción. Debes + tener en cuenta que la transacción aún no ha sido capturada, solo se ha + retenido el saldo en la tarjeta del Tarjetahabiente. +

+ +
+
+ + +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
- - - CONSULTAR ESTADO - - +
+ + + CONSULTAR ESTADO + +