Kits SDK para Android / Hacer un seguimiento del estado del pedido
  Volver a Documentos

Kits SDK para Android

Hacer un seguimiento del estado del pedido

Aviso
El SDK le permite realizar un seguimiento del estado del pedido en el lado cliente de su aplicación. Sin embargo, le recomendamos que establezca un controlador de webhook de Pago para recibir información del pedido en el back-end de su aplicación. Gracias a esto podrá implementar una validación adicional de las compras completadas.

Después de que un usuario haga una compra, su aplicación puede realizar las siguientes acciones:

  • mostrar el estado del pedido en la interfaz de usuario de la aplicación
  • abonar el importe en el saldo de un usuario tras un pago aceptado
  • conceder los artículos comprados tras un pago aceptado

Cuando utilice el SDK para implementar la lógica de estas acciones, puede hacer un seguimiento del estado del pedido de las siguientes maneras:

Suscribirse a los cambios de estado de los pedidos

Para suscribirse a los cambios de estado del pedido, use el método del SDK getOrderStatus de la biblioteca de Store y transmita los siguientes parámetros al método:

  • listener - objeto de agente de escucha del tipo OrderStatusListener.
  • orderId - ID del pedido recibido de la compra mediante la cesta de la compra, compra con un solo clic o compra a cambio de moneda virtual como el parámetro.
Documentación de referencia del SDK
Obtenga más información sobre los métodos del SDK y sus parámetros.

Ejemplo de llamada al método XStore.getOrderStatus:

Copy
Full screen
Small screen
XStore.getOrderStatus(object : OrderStatusListener() {

               override fun  onStatusUpdate(status: OrderResponse.Status) {

                   if(status == OrderResponse.Status.DONE) {

                       Log.d("MainActivity", "Success")

                   }

               }

               override fun  onFailure() {

                   Log.d("MainActivity", "Failure")

               }

           }, orderId)

Recomendamos invocar el método XStore.getOrderStatus al abrir la interfaz de pago.

Estos métodos de compra encapsulan varios métodos de seguimiento del estado del pedido. El seguimiento se realiza conforme al siguiente algoritmo:

  1. Hay establecida una conexión de socket web.
  2. Si la conexión de socket web está establecida correctamente y el estado del pedido cambia a done o cancel, se detiene el seguimiento. Si la conexión de socket web falla o la respuesta contiene datos incorrectos, el seguimiento del estado del pedido se realiza mediante sondeo corto.
  3. El seguimiento del estado del pedido prosigue con sondeo corto. Una simple solicitud HTTP de estado del pedido se envía una vez cada 3 segundos. El seguimiento se detiene si el estado del pedido cambia a done o cancel.

Solicitar el estado del pedido

También puede solicitar el estado del pedido, por ejemplo, cuando se redirige al usuario a la aplicación desde la interfaz de pago. Utilice los estados devueltos por la clase XPayments para supervisar cuándo se cierra la interfaz de pago.

Aviso
Los estados devueltos por la clase XPayments indican si el usuario ha terminado un flujo de compra en la interfaz de pago y no son los mismos que los estados de transacción de pago.

La clase XPayments puede devolver los siguientes estados:

  • XPayments.Status.COMPLETED - el usuario ha finalizado el pago y ha regresado a la aplicación.
  • XPayments.Status.CANCELLED - el usuario cerró la interfaz de pago sin finalizar el pago.
  • XPayments.Status.UNKNOWN - se produjo un error durante el proceso de pago, por ejemplo, cuando el banco rechazó la transacción.

Para obtener el estado actual de la transacción del pago, utilice el método getOrder de la biblioteca de Store. Transmita el ID del pedido recibido de la compra a través de la cesta de la compra, compra con un solo clic o compra por moneda virtual como el parámetro.

¿Te ha resultado útil este artículo?
¡Gracias!
¿Hay algo en lo que podamos mejorar? Mensaje
Lo sentimos
Por favor, cuéntanos por qué no te ha resultado útil este artículo. Mensaje
¡Gracias por tu mensaje!
Nos ayudará a mejorar tu experiencia.
Valore esta página
Valore esta página
¿Hay algo en lo que podamos mejorar?

Prefiero no responder

¡Gracias por tu mensaje!

Enlaces útiles

Última actualización: 26 de Marzo de 2024

¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.

Informar de un problema
Nos esforzamos por ofrecer contenido de calidad. Tus comentarios nos ayudan a mejorar.
Déjanos tu correo electrónico para que te podamos responder
¡Gracias por tu mensaje!