ver suscripciones son restringidas que para pago metodo las gratis facturacion estan eliminar dentro datos compras bill apple app aplicaciones ios in-app-purchase restore

ios - son - suscripciones apple



¿Restaurar compras ya compradas en la aplicación en iPhone? (2)

Agregue estos dos métodos:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; [[SKPaymentQueue defaultQueue]restoreCompletedTransactions];

Llegué tan lejos: después de una reinstalación, un usuario debe hacer clic en "comprar función", luego se asusta con la pregunta de $ 0.99, luego tiene que iniciar sesión y luego se le dice que la función ya está comprada y la recibe de forma gratuita.

Sé que Apple es una religión y los usuarios son fuertes creyentes, pero ¿no hay una mejor manera? :-) Lo que quiero es verificar la característica sin comprarla realmente. Dejar que el usuario ingrese la información de su cuenta parece ser necesario, ¿tal vez comprar una función de $ 0.00? ¿O hay algún método en algún lugar que haga esto?

Estoy usando MKStoreKit para toda la compra in-app, pero cualquier solución sería genial.

ACTUALIZAR

Gracias a darvids0n, su método resolvió mi problema! Aquí hay un código de trabajo para otros que intentan lo mismo:

- (void)removePreviousPurchases { //just for sandbox testing [[MKStoreManager sharedManager] removeAllKeychainData]; } - (void)restorePreviousPurchases { //needs account info to be entered if([SKPaymentQueue canMakePayments]) { [[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) { NSLog(@"Restored."); /* update views, etc. */ } onError:^(NSError *error) { NSLog(@"Restore failed: %@", [error localizedDescription]); /* update views, etc. */ }]; } else { NSLog(@"Parental control enabled"); /* show parental control warning */ } }


Si el artículo de $ 0.99 no es consumible, entonces debe proporcionar un botón "Restaurar compras" (o similar) que llame

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

Suponiendo que ya haya agregado un observador de transacciones e implementado el protocol incluido un caso para manejar una transacción restaurada (con el estado SKPaymentTransactionStateRestored ), esto funcionará.