2012-07-09 23 views
6

Estoy trabajando en esta aplicación con la compra de la aplicación habilitada. El camino feliz está todo cubierto, todo está bien, estoy tratando de encontrar el camino no feliz.¿Cuánto tiempo almacenará el kit de la tienda las transacciones pendientes?

En pocas palabras, la compra está vinculada a un componente del lado del servidor. En la compra, cuando la transacción está en el estado "Comprado", se supone que debo ir al servidor, lo que habilitará la cuenta del usuario. Cuando vuelve la solicitud, limpio algunas cosas y eventualmente llamo -finishTransaction: en SKPaymentQueue.

La ruta no feliz es más o menos cuando la llamada del servidor falla por alguna razón. La red no está disponible, el tiempo de espera de la red, el usuario cerró la aplicación justo después de comprarla y justo antes de que pudiera realizar la llamada al servidor, lo que sea.

Mis pruebas en el simulador 5.1 con una cuenta de espacio aislado me muestran que una transacción Comprado no finalizada volverá a la cola el próximo inicio, y mi delegado será llamado correctamente con ella. Pero, después de un momento, digamos 5 minutos, por ejemplo, boom, se fue la transacción. Teniendo en cuenta la estabilidad total de las cuentas de espacio aislado, estoy dispuesto a mencionar eso en la implementación del simulador, pero es difícil de decir.

¿Cuál es la forma adecuada de resolver este problema?

Pregunta extra: cuando la manzana realmente carga a alguien? Parece que debería ser DESPUÉS de que la aplicación se llame -finishTransaction :, pero no pude encontrar ninguna evidencia de esto en ninguna parte.

Gracias, /KRA

UPDATE: de prueba en el dispositivo físico, casi una hora y la transacción todavía está allí. Parece que las transacciones que desaparecen son algo simulador.

Respuesta

0

Cuando implementé las compras en la aplicación, abandoné la prueba en el simulador. El comportamiento es demasiado diferente. Pruébelo en el dispositivo y vea si funciona allí.

También estoy interesado en su pregunta sobre el cobro, ya que tampoco estoy completamente seguro (mi aplicación aún no se ha lanzado;)).

+0

Gracias por la respuesta. Esa es la conclusión a la que estoy llegando, la zona de pruebas es completamente poco confiable, y tienes que dar un paso de fe antes de ir a probar. Algunas pruebas anteriores en el dispositivo me indicaron que siempre regresarían (y un poco de sentido común indica eso también). Las pruebas en los dispositivos tampoco son exactamente confiables, he tenido mi parte de desinstalación, reinicio, reinstalación gracias al kit de tienda volviendo loco con el temido error "No se puede llegar a la tienda de aplicaciones". – kra

+0

Debo decir que no me metí en demasiados problemas cuando probaba en el dispositivo. Seguí esta guía muy de cerca: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/. Lo único que me molesta a veces, es que devuelve id de producto no válidos después de hacer algunas recompilaciones; cuando eso sucede, solo tengo que eliminar y compilar/ejecutar de nuevo. Toda la relación de código y sello con las identificaciones de productos también sigue siendo mágica para mí; por ejemplo, no entiendo por qué funciona cuando hago un adhoc-testrollout con la firma de depuración. –

+0

Sí, esa parte está bastante bien, mi problema fue más con cambiar entre cuentas de sandbox. En algún momento, StoreKit simplemente se da por vencido, constantemente devuelve un error falso sin importar lo que haga, y prácticamente tiene que desinstalar/reiniciar el teléfono/reinstalar. No recuerdo ningún problema con la firma del código, solo debe tener cuidado de usar un perfil de aprovisionamiento específico, no uno comodín. Siempre que los artículos estén disponibles, deberían funcionar independientemente del certificado. – kra

Cuestiones relacionadas