2

現在、私の iOS アプリは、利用可能なアプリ内購入製品についてサーバーに問い合わせる必要があり、その後、製品について、アプリは Apple に価格を問い合わせる必要があります。

これによる追加の遅延はおそらく大したことではありませんが、もっと速くしたいと思います。

クライアントの代わりにサーバーを使用してそれらの価格を取得することはできませんか? つまり、クライアントではなくサーバーから価格を取得するために使用できる HTTP ベースの API はありますか? そうすれば、さまざまなユーザーの結果をキャッシュして、往復時間を短縮できます。もしそうなら、どうすればこれを行うことができますか? そうでない場合、どのような方法でこれを処理していますか?

4

2 に答える 2

1

サーバーに米ドルで保存された価格/データを含む配列を作成し、アプリ内からそれらを再度ローカライズすることができます。後で製品を追加したり、価格を変更したりした場合は、サーバー上にあるファイルが 1 つでも、アレイを更新するだけです。もちろん、ローカリゼーションには時間がかかるかもしれません。それをサポートするコードがあるかどうかはわかりません。そのため、国ごとに 1 ドル相当額を投入するのは間違いなく時間がかかりますが、可能です。最終結果ははるかに高速になりますが、このような製品 ID とその UBER を比較してすばやく取得しました。

それでもサーバーから価格を取得する場合は、最初にアプリにローカル経由で送信させ、それをリクエストに添付して、価格の結果をローカライズできるようにします。

于 2012-12-06T11:16:36.180 に答える
1

****クライアント**-iOS アプリDS -開発者サーバーAppleS -Apple サーバー**

DS と AppleS
の両方とのクライアント通信 クライアントが AppleS と通信する場合、時間の消費という 1 つの欠点に対して、(後述のように) いくつかの利点があります。

  1. アプリ内製品のセットを AppleS に送信すると、有効なものと一致し、有効な製品 ID の配列リスト (SKProduct 配列) が送信されます。これにより、アプリに対してまだ登録、承認、および販売が許可されていない製品を表示するリスクが完全に排除されます。

  2. ローカリゼーション - 例としての価格。米国と英国で製品を販売しているとします。この製品の価格は、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 のみを使用したクライアント通信」モデルに進みます。

于 2012-12-06T09:17:41.970 に答える