2011-02-08 8 views
5

Tengo compras en la aplicación configuradas para que cuando un usuario haga clic en el botón de compra, aparezca la vista "Por favor espere" y agregue un pago a la cola de pagos. Esto siempre provoca una devolución de llamada inmediata del observador de la cola, que indica que la transacción entró en el estado "Compras".SKPaymentTransactionObserver no recibe una devolución de llamada en la aplicación switch

Mi problema ocurre cuando el usuario regresa a la pantalla principal antes de que aparezca el cuadro de diálogo confirmar para comprar, luego se cancela. Si espero un tiempo en la pantalla principal antes de volver a la aplicación, la aplicación nunca recibe una devolución de llamada sobre el estado de cambio de transacción o si se elimina. Si examino la cola de pagos, puedo ver que la transacción aún está en la cola, aún en el estado "Compras". ¿Hay algo que pueda hacer para que vuelva a llamar y eliminarlo de la cola después de reanudar la aplicación?

+0

tienen el mismo problema ... ¿encontraron la manera de resolverlo? – nico

Respuesta

5

Si he entendido correctamente su situación, le ha surgido este problema:

In App Purchase user cancels tx while app in background: tx state stays on purchasing

Esto parece ser un error en el juego de tienda de Apple. El problema se puede reproducir fácilmente si envía su aplicación a segundo plano inmediatamente después de iniciar una compra y luego presiona el botón cancelar cuando se le solicite la ventana emergente de confirmación de compra. Su aplicación nunca recibirá la notificación de falla de la transacción (cancelada) e ingresará un estado bloqueado (si deshabilitó la UI para evitar que el usuario interactúe con la aplicación hasta que la compra haya finalizado).

Tenemos que esperar una solución de Apple. Mientras tanto, si su aplicación ingresa a un estado bloqueado porque usted deshabilita la IU mientras realiza una compra; Debería implementar algún mecanismo para permitir al usuario salir de ese estado.

¡Buena suerte!

+0

Bueno, gracias. Al menos yo no soy el único. –

0

Tengo el mismo problema, sin embargo, solo he logrado reproducirlo cuando uso una cuenta de tienda de aplicaciones de sandbox.

¿Alguien ha logrado reproducirlo usando una cuenta real de Apple?

No he intentado esto todavía, pero estoy pensando en eliminar mi SKPaymentTransactionObserver en el momento en que la aplicación pierde el foco y volver a agregarla cuando se active.

Lo extraño de este error es que te quedas atascado con una transacción en el estado de compra, sin embargo, cuando cierras la aplicación y reinicias correctamente, es de esperar que la transacción en el estado de compra continúe allí, sin embargo no es ... Como si la nueva adición de SKPaymentTransactionObserver lo hubiera activado para volver a evaluar adecuadamente su estado.

Cuestiones relacionadas