web-dev-qa-db-ja.com

アプリ内購入の復元ボタンがないため、拒否されます

消耗品以外のアイテムを使用してアプリ内購入を使用してアプリケーションを実装していますが、Appleによって拒否されました。理由は、次のとおりです。

お使いのアプリは復元可能なアプリ内購入を提供していますが、ユーザーが以前に購入したアプリ内購入を復元できる「復元」機能が含まれていないことがわかりました。

以前に購入したアプリ内購入製品を復元するには、[復元]ボタンを提供し、[復元]ボタンをタップしたときに復元プロセスを開始するのが適切です。

トランザクションの復元と店舗の領収書の確認の詳細については、

参照するリンクがありません、私はすでに実装しています:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

SKPaymentTransactionStateRestoredの場合。

しかし、私は実装しませんでした:

`restoreCompletedTransactions`  or `paymentQueueRestoreCompletedTransactionsFinished`

アプリ内購入が承認されるために必要なこれらの方法は何ですか、または正確な問題は何ですか。

ありがとう

21
Nidal Saed

以下を使用して、ユーザーがアプリから購入した製品IDを復元します

- (void) checkPurchasedItems
{
   [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}// 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];
  }

}

purchasedItemIDには、ユーザーが購入したすべての商品IDが含まれます。終了時にこの関数を呼び出すボタンを配置して、これらすべての商品を表示し、ユーザーが再度ダウンロードできるようにすることができます。

22
Malek_Jundi