15

完了したトランザクションの復元に問題があります。

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

いくつかの例で言及されているオブザーバーを追加しました。追加しようとしましたがpaymentQueueRestoreCompletedTransactionsFinished、すでに持っていますupdatedTransactionspaymentQueueRestoreCompletedTransactionsFinished私はゼロトランザクションを持っていると言います

製品を購入できますが、再度購入しようとすると、停止し、このコードを使用して製品を既に購入したと表示されます。

SKPayment *payment = [SKPayment paymentWithProductIdentifier:productIdentifier];
[[SKPaymentQueue defaultQueue] addPayment:payment];

バンドル ID に問題があるのではないかと思いましたが、問題ないようで、そうでない場合は購入できませんでした。

デバイスとシミュレーターでこれを試してみましたが、これは同じ結果になります。また、英国または米国のストアを使用している場合も違いはありません。

なぜこれがうまくいかないのかを知るために、私は本当にストローをつかんでいますか?

4

2 に答える 2

10

このようにして、配列カウントを確認してみてください。それもゼロを返しますか?

- (void) checkPurchasedItems
{
   [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}//You Call This Function

//Then this delegate Function Will be fired
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
  purchasedItemIDs = [[NSMutableArray alloc] init];

  NSLog(@"received restored transactions: %i", queue.transactions.count);
  for (SKPaymentTransaction *transaction in queue.transactions)
  {
      NSString *productID = transaction.payment.productIdentifier;
      [purchasedItemIDs addObject:productID];
  }
}
于 2012-04-12T09:42:24.757 に答える
2

ドキュメントによると:

ストアで販売する新しい製品を作成する場合、その製品を復元できるかどうかを選択します。

問題は、製品が復元できるように構成されているかどうかです。

于 2012-04-12T08:34:48.807 に答える