purchases purchase manage itmss commission cancel apple app iphone in-app-purchase

iphone - purchase - manage app subscriptions



restoreCompletedTransactions broken? (6)

Asegúrese de agregar observador antes de usar [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

Su código debe ser algo como:

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

¿RestoreCompletedTransactions está roto en SDK 4.3?

Estoy tratando de restaurar mi suscripción auto-renovable. No está resultando en devolución de llamada a updatedTransactions. Aquí está mi código.

{ .... [appDelegate.inapp loadStore]; [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; .... }

Esperando devolución de llamada a updatedTransactions, pero no la recibo.

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { NSLog(@"IN updatedTransactions, transaction.transactionState"); for (SKPaymentTransaction *transaction in transactions) { switch (transaction.transactionState) { ... ... case SKPaymentTransactionStateRestored: NSLog(@"IN updatedTransactions, SKPaymentTransactionStateRestored"); [self restoreTransaction:transaction]; break; } } }

Pero recibo llamada a esto al final.

-(void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { }


Asegúrese de que su número de compilación en Xcode no tenga espacio. Por ejemplo "1.0 Beta". Con un espacio updatedTransactions no se llamará. También la verificación del recibo puede fallar.


Esto aún puede (1) suceder si está realizando pruebas en el entorno de Sandbox y su Usuario de prueba no funciona . Cree un nuevo usuario de prueba en iTunes Connect y vuelva a intentarlo.

No está del todo claro qué es lo que hace que los usuarios de prueba se vuelvan mal de lo que recojo, usarlos una vez en un entorno que no sea un entorno aislado puede hacer esto, pero también puede haber otras razones.

(1) Xcode 4.3.1, iOS SDK 5.1


Los productos consumibles no pueden ser restaurados.

Los productos no consumibles pueden ser restaurados.

Compruebe si sus productos son de tipo no consumible .


No debería necesitar la devolución de llamada a Transacciones actualizadas si está obteniendo paymentQueueRestoreCompletedTransactionsFinished. La "cola" tiene una lista de sus transacciones y puede recorrerlas.

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { for (SKPaymentTransaction *transaction in queue.transactions) if ([myItem.productID isEqualToString:transaction.payment.productIdentifier]) myItem.purchased = YES; }


Pude evitar esto, pero es muy extraño. En mi dispositivo de prueba me estoy molestando en iTunes para iniciar sesión en varias cuentas de usuario de prueba. Por lo general, simplemente presiono Cancelar y pruebo mi restauración con la cuenta que quiero restaurar. Esta vez decidí ingresar la contraseña para estos otros cuadros de inicio de sesión molestos. Funcionó y la próxima vez que reinicié mi aplicación y presioné restaurar no me molestó para iniciar sesión en las otras cuentas de prueba, solo la que estaba probando. Continué con la restauración y restauró los elementos que quería ver.

Yo diría que estábamos experimentando problemas de caja de arena estúpidos y también sabemos que Apple ha cambiado en la compra de aplicaciones en general. Sigue jugando con él, conseguirás que funcione.

Espero que esto te ayude.