El método ProcessPurchase
de su listener de la tienda se llama cuando una compra finaliza. Su aplicación debería cumplir con lo que usuario ha comprado, por ejemplo, desbloqueando contenido local o el envió de recibos de compra a un servidor para actualizar un modelo de juego del lado del servidor.
Un resultado se devuelve para indicar si su aplicación ha finalizado procesando la compra:
Resultado | Descripción |
---|---|
PurchaseProcessingResult.Complete | La aplicación ha finalizado de procesar la compra y no debería ser informada de esta nuevamente. |
PurchaseProcessingResult.Pending | La aplicación todavía está procesando la compra y ProcessPurchase será llamado nuevamente la siguiente vez que la aplicación inicie, al menos del que el método ConfirmPendingPurchase de IStoreController sea llamado. |
Tenga en cuenta que ProcessPurchase puede ser llamado en cualquier punto siguiendo una inicialización con éxito. Si su aplicación crashea durante la ejecución del manejador ProcessPurchase
entonces será invocado nuevamente la siguiente vez que el Unity IAP inicializa, por lo que usted puede desear implementar su propia de-duplicación adicional.
Unity IAP requiere conocimiento explícito de compras para asegurar que las compras terminen en un evento donde haya problemas de red o la aplicación falle. Cualquier compra que se complete mientras la aplicación no está en linea será enviada a la aplicación en la siguiente inicialización.
Cuando PurchaseProcessingResult.Complete
se devuelva, Unity IAP termina la transacción inmediatamente (como se muestra en el diagrama de abajo).
Usted no debe devolver PurchaseProcessingResult.Complete
si usted está vendiendo productos consumibles y lo está completando desde un servidor (por ejemplo, proporcionar una divisa en un juego en linea).
Si usted hace esto, hay un riesgo de que los productos consumibles se pierdan si su aplicación se des-instala antes de que la nube guarde.
Si usted está guardando compras consumibles a la nube, usted debe devolver PurchaseProcessingResult.Pending
y llamar ConfirmPendingPurchase
sólo cuando haya persistido con éxito la compra.
Cuando devuelva Pending
, Unity IAP mantiene las transacciones abiertas en la tienda pertinente hasta que sean confirmadas como procesadas, asegurando que las compras consumibles no se pierdan incluso si el usuario re-instala su aplicación mientras un consumible está en este estado.