Hacer un seguimiento del estado del pedido
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 tipoOrderStatusListener
.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.
Ejemplo de llamada al método XStore.getOrderStatus:
- kotlin
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:
- Hay establecida una conexión de socket web.
- Si la conexión de socket web está establecida correctamente y el estado del pedido cambia a
done
ocancel
, 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. - 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
ocancel
.
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.
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?
Valore esta página
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.