2012-05-03 9 views
9

私のアプリケーションに消耗品を提供しています。ユーザーが既に非消耗品をダウンロードしているかどうかをチェックする方法Inapp購入

ユーザーがそのアイテムを購入し、そのアプリケーションを同じIDのの別のデバイスにインストールしようとしたとします。ユーザーがログインして既にそのアイテムを購入している場合、私はポップアップをいくつか表示して、すでに購入したことをユーザーに伝えたいので、今すぐ無料でダウンロードしてください。あなたはすでにそのアイテムを購入したと言われています。

ユーザーログインの詳細を取得し、ユーザーが既にアプリ内購入を行っているかどうかを確認する方法はありますか?

ログインして既に購入した商品を購入しようとすると問題が発生します。 2種類のアラートビューが時々表示されます。私はサンドボックス環境を使用しています。

  1. あなたはすでにこれを購入したが、今それをダウンロードしてdownloaded.Tap OKされていません。 このアラートビューは、我々は[OK]をコントロールが行く押す.whenのみOKボタンを持っているに - (無効)failedTransaction:(SKPaymentTransaction *)あなたはすでに警告free.thisのために再びそれをダウンロードするthis.Tap OKを購入した

  2. トランザクションビューには2つのボタンがあり、1つはキャンセルで、もう1つはOKです。 OKボタンを押すとコントロールは - (void)completeTransaction:(SKPaymentTransaction *)のトランザクションに行きます。

トランザクションがこの特有の動作を示している理由

ありがとうございました

答えて

6

あなたは何か違うことが必要だと私は理解していません。

あなたが言ったように、システムは、ユーザーが既に製品を所有していることを検出し、ユーザーに「クリックしてダウンロード」警告を表示します。ユーザーがダウンロードを選択すると、状態が「購入済み」または「復元済み」のSKPaymentTransactionが表示されます(忘れました)。その後、通常どおりに製品を提供するだけです。したがって、ユーザは、彼が2回目の請求されていないことを知っており、彼はその製品を入手する。

ユーザーが何もしなくても、ユーザーが所有している製品を自動的に検出したい場合は、restoreCompletedTransactionsSKPaymentQueueに送信してください。そうするとき、ユーザーは自分のiTunesパスワードを入力する必要があります。私は自分のUIに「購入を元に戻す」ボタンを持っている方が好きなので、ユーザーは自分のパスワードを尋ねられる理由を知っています。

+0

私は自分の質問を編集しました。今他の問題が来ました。あなたが私を助けることができます – rocksvick

+0

あなたは何か考えているのですか?なぜサンドボックス環境でこの異なる動作が異なるのでしょうか? – rocksvick

+0

私は分かりません。私はその問題を見ていない。 –

0

サンドボックスには安定性の問題がたくさんあるようですが、このスレッドhttps://devforums.apple.com/thread/164500?tstart=0はApple Developer Forum(ログインが必要です)を参照してください。私は消耗品でアプリの購入をテストしており、ケース2を見たことがない、私はケース1(フォーラムで述べたように)だけを得る。だから、あなたも2を得るために自分が幸運検討するかもしれない)随時:(

0

両方の問題に直面した、私は彼らの考えを以下している私を含め

1]多くの開発者は、再起動することにより、最初の問題を解決デバイス。

2] 2番目の問題では、「購入済み」または「復元済み」コールバックが「OK」をテーピングする際に呼び出されるため、製品は単独で利用可能になります。

はそれが役に立てば幸い!

関連する問題