トランザクション履歴にちょうど 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 がアプリ内購入のキャッシュ レジスターになることを主張しているためです。