IAP: ¿Cómo cancelar una transacción comprada si la descarga de contenido falla o el recibo no es válido?

Estoy tratando de averiguar algo con IAP.

En los documentos veo que necesito llamar a la transacción de finalización solo después de que el contenido comprado se haya descargado correctamente para el usuario:

Su aplicación debe llamar a finishTransaction: solo después de que haya procesado correctamente la transacción y desbloquee la funcionalidad adquirida por el usuario.

Tengo esta situación:

  1. El usuario compra el contenido.
  2. Una vez completada la compra, envío el recibo a la verificación en mi server.
  3. Si no hay problema, estoy descargando el contenido al usuario.

PERO, ¿qué sucede si recibo un recibo inválido? ¿Debo llamar a finishTransaction? o simplemente eliminar la transacción?

Otro escenario es cuando falla la descarga y el usuario abandona la aplicación por un time. ¿Se puede cancelar la compra y dejar que lo reinicie más tarde?

Gracias

  • Si las validaciones fallan, debe llamar a finishsTransaction pero no entregar el contenido y aconsejar al usuario que algo salió mal.

  • No puede cancelar la compra, una vez que recibe un recibo, la compra se ha realizado. Tienes que codificar tu propio mecanismo para reintentar la descarga siempre que sea posible.