****クライアント**-iOS アプリDS -開発者サーバーAppleS -Apple サーバー**
DS と AppleS
の両方とのクライアント通信 クライアントが AppleS と通信する場合、時間の消費という 1 つの欠点に対して、(後述のように) いくつかの利点があります。
アプリ内製品のセットを AppleS に送信すると、有効なものと一致し、有効な製品 ID の配列リスト (SKProduct 配列) が送信されます。これにより、アプリに対してまだ登録、承認、および販売が許可されていない製品を表示するリスクが完全に排除されます。
ローカリゼーション - 例としての価格。米国と英国で製品を販売しているとします。この製品の価格は、DS で言うと US $ になります。したがって、英国のユーザーに米ドルでの価格を表示することになります。(これをある程度まで克服するために、DS はユーザーの国に基づいて通貨をローカライズするメカニズムを備えている必要があります)。
DS のみのクライアント通信
ご質問にお答えします。はい、DS を使用して製品の価格を取得できます。これを実現するには、別の属性 (価格) を製品オブジェクト (サーバーから入手できるアプリ内購入製品のリストから) に追加します。DS で実装する必要があります。
例えば。
Product1 - アプリ内製品 ID、価格、名前、サンプル画像など
。
.
商品n - アプリ内商品ID、価格、商品名、サンプル画像など
さて、DS のみとのクライアント通信を使用しながら、クライアントが DS と AppleS の両方と通信することから得られるいくつかの利点をどのように組み込むことができるでしょうか?
1 Adv - DS 側で手動でチェックするか、定義されたプロセスを通じて、有効な製品のみが表示されていることを確認できます。
2 Adv - これをある程度組み込むには、次の @ DS を実装します。
ステップ 1 – DS 側で、App Store の価格表を持つ DB テーブルを作成します。
ステップ 2 – クライアントから DS へのリクエストをヒットすると、DS はサービス リクエスト ヒットから IP を取得できます。この DS サービスに応じて、ユーザーの現在の国を見つけることができます。
ステップ 3 – ユーザーの現在の国に基づいて、ステップ 1 のローカライズされた通貨で価格をマッピングします。現在のユーザーの国がApp Store の価格表に含まれていない場合は、US ドルの価格を使用します。 Apple はそうしますが、ユーザーの Apple ID に関連付けられた国を使用します)。
IAP 確認ダイアログに表示される最終結果のローカライズされた価格は、お客様が表示した価格と同じになります (お客様が指摘した不一致を回避するために - 多少繰り返します :-))。
ある国に属するユーザーが別の国に属する AppleID を持っている場合、この実装全体は失敗します。DS はユーザーの場所に応じて価格をマップしますが、IAP 確認ダイアログにはユーザーの AppleID の国に基づいた価格が表示されます (不一致 !!!)。
iOS デバイスにログインしている Apple ID に関連付けられている国を特定できません。こちらのQ&Aをご覧ください。
「DS と AppleS の両方とのクライアント通信」モデルを実装することをお勧めしますが、DS と AppleS の両方とのクライアント通信に複数の製品リクエストがある場合に関連する遅延を減らすために (一度に 10 個の製品のセットを要求するか、状況に応じて) UIに一度に表示する製品の数について)。
「遅延」のために収益またはユーザーを失うことになると思われるか、より正確には分析がある場合にのみ、「DS のみを使用したクライアント通信」モデルに進みます。