Dans App Purchase ne change pas son état à SKPaymentTransactionStatePurchased

J'ai ajouté la fonctionnalité d'achat d'application à mon application iphone-ipad et cela fonctionne dans le magasin d'applications dès maintenant. Je suis mise à jour cette application et en utilisant la méthode ci-dessous pour get la notification d'état de la transaction

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { for (SKPaymentTransaction *transaction in transactions) { NSLog(@"Payment Queue"); switch (transaction.transactionState) { case SKPaymentTransactionStatePurchased: [self completeTransaction:transaction]; break; case SKPaymentTransactionStateFailed: NSLog(@"Payment not finished"); [self failedTransaction:transaction]; break; case SKPaymentTransactionStateRestored: [self restoreTransaction:transaction]; break; case SKPaymentTransactionStatePurchasing: NSLog(@"Trying To Purchase"); break; default: NSLog(@"Buraya giriyor"); break; } } 

}

mais le problème est quand j'essaye de se connecter aux servers de bac à sable j'obtiens l'état échoué de transaction. Tout est identique à celui qui fonctionne dans l'App Store. Je viens de mettre à jour certaines vues dans l'application. Tout en utilisant l'application dans le magasin, il request à propos de AppleID et request une confirmation pour download le contenu. Alors que je testais dans l'achat de l'application, il demandait également ce AppleID et la confirmation. Mais maintenant, bien qu'il trouve et obtienne les identifiants de produit, il ne request pas ces confirmations.

Vendredi 9 04:14:19 iPod-touch CCDergi [1740]: indirilenappkey = 201107

Les informations de journal entre deux lignes appartiennent au produit que j'essaie d'acheter.

Vendredi 9 04:14:21 iPod-touch CCDergi [1740]: ———————————- ————

Fri Jan 9 04:14:21 iPod-touch CCDergi [1740]: Titre du produit: Call Center Life Issue 8

Fri Jan 9 04:14:21 iPod-touch CCDergi [1740]: Description du produit: Numéro 8 du magazine Call Center Life

Vendredi 9 04:14:21 iPod-touch CCDergi [1740]: Prix du produit: 2.99

Fri Jan 9 04:14:21 iPod-touch CCDergi [1740]: Identifiant du produit: com.selvitech.cclife.201107

Vendredi 9 04:14:21 iPod-touch CCDergi [1740]: ———————————- ————

Vendredi 9 04:14:21 iPod-touch CCDergi [1740]: Acheter Dergi

Fri Jan 9 04:14:21 iPod-touch CCDergi [1740]: File d'attente de paiement

Vendredi 9 04:14:21 iPod-touch CCDergi [1740]: Essayer d'acheter

Fri Jan 9 04:14:25 iPod-touch CCDergi [1740]: File d'attente de paiement

Fri Jan 9 04:14:25 iPod-touch CCDergi [1740]: Le paiement n'est pas terminé

Quel peut être le problème? Qu'est-ce qui me manque?

Merci d'avance..

** (Annuler cela … cela n'a pas fonctionné pour moi, même si cela peut être utile pour d'autres)

J'ai remarqué que la méthode transactionReceipt n'est pas disponible sur iOS9. Il renvoie une valeur nulle au lieu d'une donnée de reçu. Certaines applications utilisant cette méthode échouent donc à l'achat. Cette méthode est obsolète depuis iOS7. Enfin, cela ne fonctionnait plus.

  NSData receipt = [transaction transactionReceipt]; //always return nil on ios9 

Vous devez utiliser [NSBundle appStoreReceiptURL] pour get datatables de réception.

  NSURL* url = [[NSBundle mainBundle] appStoreReceiptURL]; NSData* receipt = [NSData dataWithContentsOfURL:url]; //works fine. 

Je vais mettre à jour une fois que j'essaie d'intégrer cela dans mon application pour les tests.