ユーザーが特定の期間使用する機能をサブスクライブできるアプリを開発しています。サブスクリプション期間は独自のサーバーで確認され、この時間が経過すると、ユーザーは新しいサブスクリプションを購入する必要があります.
今、私は Apple からのアラートについて混乱しています。「1 つ購入しますか ...」というアラートの後に、ユーザーが既にサブスクリプションの料金を支払ったこと、および更新したい場合は、別のアラートが表示されます。
これは本当に新しい支払いにつながりますか?
ユーザーが特定の期間使用する機能をサブスクライブできるアプリを開発しています。サブスクリプション期間は独自のサーバーで確認され、この時間が経過すると、ユーザーは新しいサブスクリプションを購入する必要があります.
今、私は Apple からのアラートについて混乱しています。「1 つ購入しますか ...」というアラートの後に、ユーザーが既にサブスクリプションの料金を支払ったこと、および更新したい場合は、別のアラートが表示されます。
これは本当に新しい支払いにつながりますか?
Appleは、AppStoreのようなものまたはアラートのいずれかで独自の購入UIを提示する必要があります。ユーザーが購入を確認した後、アプリはSKPaymentを送信します。これにより、SDKはユーザーのストアIDとユーザーが支払っている金額を確認します(これは、参照している2番目のダイアログだと思います)。
ユーザーがiTunesを通じてあなたにお金を与えるときはいつでも、どこかにiTunesダイアログがあります。Appleは、開発者がそのステップをスキップして、疑いを持たないユーザーから無料のお金を得ることを望んでいません。解決策は、それを中心に設計することです。ダイアログが来ることはわかっているので、最初に冗長なダイアログをユーザーに提供しないでください。多くのアプリは、「購入」ボタンのある情報ページを使用してそれを回避します。2つの購入ダイアログを連続して表示する代わりに、1つの購入情報ページを表示し、ボタンを押してからAppleSDK購入ダイアログを表示します。
サブスクリプションサービスが必要な場合は、iTunesConnectでアイテムをサブスクリプションとして設定する必要があります。消耗品または非消耗品ではありません。IAPアイテムを作成すると、そのタイプを変更できないため、作成時に正しく選択してください。サブスクリプションは、基本的に時間ベースの消耗品であるにもかかわらず、消耗品のようには処理されません。Appleは、一方が特定の日付で期限切れになり、もう一方が時間以外のリソースが使い果たされた後に期限切れになることをユーザーに伝えるために、異なる表現を強制します。
自分のサーバーでサブスクリプションの購入を追跡する必要があり(領収書を確認して著作権侵害を排除するため)、アプリは適切なタイミングで更新を求める必要があります。アプリストアに関する限り、サブスクリプションを更新するとサブスクリプションが再度購入されるため、SDKがユーザーに購入の確認を求めるダイアログを表示します。現在、「自動更新サブスクリプション」オプションもありません。これらの理由により、多くの開発者が複数月のサブスクリプションを提供しています。
あなたは、AppleStoreがユーザーサブスクリプションの有効期限が切れたことを知っていることを期待しているようです。そうではありません。したがって、アプリケーションはいつでも、1分ごとでもサブスクリプションを更新できます。必要に応じて、AppleStoreはこれを有効な更新と見なします。アプリケーション(またはおそらくサーバー)はアカウンティングを実行し、ユーザーの最後に成功したサブスクリプショントランザクションがどれくらい前であったかを確認し、それがすぐに不十分な場合は、サブスクリプション支払いトランザクションをスキップする必要があります。
実際の支払いにつながらないサンドボックスで、すべてのアプリ内購入 (IAP) をテストできます。
また、アプリがさまざまなトランザクションを処理する方法によって、[購入しますか...] ダイアログがいつ表示されるかが決まります。
明らかに、ユーザーがサブスクリプションを購入したら、それを保存する必要があります (読み取り: NSUserDefaults)。すべての支払いが完了している場合は、「購入しますか」というアラートを表示しないでください。
これで質問の答えが得られない場合は、より具体的な質問をしてください。特に、「購入しますか?」という質問をトリガーするのは、IAP 関連のコードの実行です。アラート; したがって、ユーザーのサブスクリプションの支払いに関する知識に基づいて、それを行う/行わない必要があります。