10

私たちは 3 人の男で、iPhone 用の無料ゲームを作成し、App Store でほぼ 1 年間利用できるようにしました。

このアプリはボード ゲームであり、ユーザーを作成するか、Facebook の資格情報を使用してログインします。ゲームからログアウトし、別のアカウントで再度ログインできます。

現在、ユーザーをプレミアム ユーザーにアップグレードできるようにアプリを更新しました。個人およびグローバルのゲーム統計を許可します。

しかし、Apple は承認プロセスで頭を悩ませており、アプリ内購入の受け入れを拒否しています。復元ボタンがなかったため、最初は承認されませんでした。その後、消耗品の購入だったので復元ボタンは不要だと伝えたところ、現在は非消耗品に変更して復元ボタンを追加するように求められています。

購入が消耗品でない場合は、このシナリオを検討してください。

  1. ユーザーがログインします。
  2. ユーザーがアカウントをプレミアムにアップグレード
  3. ユーザーがログアウトします。
  4. ユーザーが別のアカウントでログインします。
  5. ユーザーが以前の購入を復元します。

これにより、1 回の購入で 2 つのアカウントをプレミアムにアップグレードできます。

Apple の主張は、新しいデバイスがセットアップされた場合、またはデバイスが復元された場合、ユーザーが購入を復元できる必要があるというものです。

しかし、それはそれが機能する方法ではありません。ユーザーは自分のアカウントをプレミアム アカウントにアップグレードします。新しいデバイスを購入するか、既存のデバイスを復元するときに、既存のゲーム アカウントでログインするだけでアップグレードが利用可能になります。これは、サーバー側でアカウントがプレミアム アカウントとしてマークされているためです。

だから私の質問は基本的にです。非消耗品の代わりに消耗品を使用することを選択したとき、私たちは完全に間違っていましたか. もしそうなら、同じデバイス上の異なるゲーム アカウントで (潜在的に) 複数回購入できるようにするには、非消耗品をどのように実装する必要がありますか?

第二に、消費型アプリ内購入の使用について私たちが正しいとしたら、私たちが正しい道を進んでいると Apple に納得させるには何と言えばよいでしょうか?

4

2 に答える 2

6

プレミアム アカウントが、ユーザーが 1 回しか購入しなければならないものである場合、Apple が非消費型アプリ内への切り替えを求めるのは間違いなく正しいことです。

あなたが説明したシナリオはかなり可能です(私もそれに直面しなければなりませんでした)が、プレミアム機能のロックを解除する前にアプリ内領収書のサーバー側検証を追加すると(ユーザーに関連付けられたすべてのトランザクションを保存します)、購入品が新規または復元済みであるか、フィールドoriginal_transaction_idoriginal_purchase_dateレシート データを確認します。このようにして、購入を復元したユーザーが最初に購入したユーザーと同じかどうかを確認できます (Facebook ユーザー ID を確認するなど)。

とにかく、経験上、これが発生する可能性はそれほど高くなく、このチェックを実装することはお勧めしません (ただし、サーバー側の検証はほとんどの場合必須です ;-) )

于 2013-04-20T08:58:12.597 に答える
2

In-App Purchase Programming Guideの「Restoring Transactions」セクションによると:

アプリケーションが復元可能でなければならない製品タイプをサポートしている場合は、ユーザーがこれらの購入を復元できるインターフェイスを含める必要があります。

アプリに非消耗品の購入が含まれていて、復元ボタンが含まれていない場合、Apple はアプリを承認しません。

これは、2012 年 6 月以降、Apple によって必要とされています。

したがって、あなたの質問に答えるには: いいえ、使用する必要があるようrestoreCompletedTransactionsです。

お役に立てば幸いです。

于 2013-04-20T08:54:13.863 に答える