9

トランザクション履歴にちょうど 2 回の購入がある 1 つのテスト アカウントがあります。どちらの製品も消耗品ではありません。

iPad 1 でログインし、製品 A を購入しました。

その後、iPad 1 からログアウトして iPad 2 にログインし、製品 B を購入しました。

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];次に、iPad 2 で製品 A のロックを解除するために、以前のトランザクションを復元しようとしました。

コールが戻ってくると、製品 B のみが復元可能なトランザクションのリストに含まれています。

さらに、iPad 2 で再度製品 A を購入しようとすると、

SKPayment *payment = [SKPayment paymentWithProduct:productA];
[[SKPaymentQueue defaultQueue] addPayment:payment];

「すでに購入済みです。」というポップアップが表示されます。[OK] をタップして、もう一度無料でダウンロードしてください。

製品 A を既に購入している場合、以前の購入を復元しようとすると、製品のリストに表示されないのはなぜですか? ユーザーにもう一度購入してもらう必要があるのはなぜですか?

編集:
どの iPad (iPad 1 または iPad 2) を使用してもかまわないことがわかりました。製品 B のみが復元可能なトランザクションのリストに表示され、製品 A を再購入する必要があります。

編集:
製品のリクエスト、復元、および購入作業を、オリジナルと同じバンドル ID と製品 ID を持つ独自のプロジェクトに外挿しました。

復元可能なトランザクションのリストには何も表示されませんが、いずれかの製品を購入しようとすると同じポップアップが表示されます。

壊れた Apple ツールでうさぎの穴を下る別の旅。

編集:
この調査のインスピレーションは、資格の欠落に関するユーザーの苦情の急増です。これは主に、ユーザーが iPad 2 から新しい iPad 3 に切り替えたときに問題になり始めました。これは私のすべてのユーザーの間で一貫しているわけではありませんが、十分な数のユーザーがそれについて悪臭を放ち、それを優先するようにしており、Apple カスタマー サポートはそれらを私に戻すように指示しましたが、これが私が修正できる問題かどうかはわかりません、特に Apple がアプリ内購入のキャッシュ レジスターになることを主張しているためです。

4

2 に答える 2

3

私は、これがどこかのAppleのサーバーソフトウェアのバグであることを正当に認めています。

于 2012-07-06T17:19:41.600 に答える
3

このメッセージは「あなたはすでにこれを購入しています。[OK] をタップして、もう一度無料でダウンロードしてください。通常、支払いトランザクションをデフォルト キューに追加し、トランザクションを終了しなかった場合に表示されるためStoreKit、ユーザーがアイテムを購入したが、アプリケーションによってダウンロードされていないと想定されるため、アイテムが配信されていることを確認してください。ユーザーに連絡してトランザクションを終了します...ユーザーが購入したアイテムを取得する方法があり、その作業は私にとって良いものです..試してみてください

- (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];
  }

}

これpurchasedItemIDsには、ユーザーが購入したすべての製品 ID が含まれます。

于 2012-05-20T08:03:31.803 に答える