8

私のアプリには、購入可能なアプリ内アイテムが含まれています。請求 APIを使用して、購入可能な製品とその価格のリストを取得します。取得された価格は、通貨と価格の両方を含む書式設定された文字列です (例: "$2.50")。

現在、Google アナリティクス APIを使用して購入を追跡しています。価格を送信するために、この API はマイクロ単位の長いパラメーターを取ります。したがって、(2.50*1000000) を送信する必要があります。

最初の価格 (Billing API から取得) を 2 番目の価格 (Analytics API に送信) に変換する API はありますか?

もちろん、単純な文字列解析変換を自分で行うこともできますが、そうすると予期しないケースが発生するのではないかと心配しています。たとえば、一部のロケールでは、価格に「.」ではなく「,」が含まれます。

編集

自然な解決策は、NumberFormat を使用して "$2.50" を 2.50 に変換することです。

Double price = NumberFormat.getCurrencyInstance().parse(priceStr).doubleValue();

ただし、Google Play から取得した価格文字列の形式は、電話が置かれている国のロケールにあるようですが、NumberFormat は必ずしも同じではない電話のロケールを使用します...

4

1 に答える 1

1

公式には文書化されていませんが、Billing API はすでにgetSkuDetails()応答で必要なデータを提供しています。

フィールドに加えてprice、次のものも取得します。

price_currency_code ISO通貨コード

price_amount_micros マイクロ単位の製品価格 (注: 正味価格)

于 2013-12-11T15:12:40.563 に答える