2013-01-03 7 views
12

Windows Phone 8アプリケーションで行われたアプリ内購入を追跡するために、アプリ内から購入した通貨を知りたいと考えています。今、私たちは次のように、FormattedPriceプロパティを使用して価格を知っているので:Windows Phone 8でアプリ内購入商品の通貨を取得するにはどうすればよいですか?

public static async void LoadProductListing() 
{ 
    ListingInformation listings = await CurrentApp.LoadListingInformationAsync(); 
    ProductListing product = listings.ProductListings["SomeProductID"]; 

    String price = product.FormattedPrice; 
} 

これは€0,99または$0.99などの符号のみでフォーマット価格になります。 の場合、これは問題ありません。 $これは十分な情報ではありません。米ドル、カナダドル、豪ドル、チリペソのいずれかがまだわかりません。我々は適切なISO 4217通貨コード(のようなEURUSDCADAUDCLP)または(US$C$、などのように)正確な通貨を説明し、少なくともシンボルで、この情報を持っていると思います。 Windows 8の上で

現在の市場のロケールを取得するにはListingInformation.CurrentMarketプロパティを使用することが可能である(したがって、通貨を使用)、しかしマニュアルの発言があった:

Windows Phone 8 
This API is not implemented and will throw an exception if called. 

我々が使用して偵察システムロケールは十分正確ではありません。現在の市場で使用されているロケールと同じではないかもしれません(ただし、間違っている可能性があります)。

Windows Phone 8アプリケーション内でアプリ内購入通貨を適切に判断する方法はありますか?

+0

私は疑いがありました。ここでシミュレータを使用しようとしているときの値は自動的に変換され、その金額は現地通貨に基づいて換算されません。 – AbsoluteSith

答えて

11

WP8はLive ID支払いプロファイル領域を使用して電話機の市場を選択し、電話機の設定でこれを変更することはできません。私は支払いプロフィールが何とかカナダに設定されている(私は米国出身です)、電話での設定でこれを変更することができないので、私はこれを知ることしかありません。

しかし、元の質問に戻ってください:あなたの携帯電話は、System.Globalization.RegionInfo.CurrentRegionを介してアプリの購入に使用されているカルチャを常に報告します。したがって、アプリの購入に使用されている正しい通貨コードを確実に取得することができます。

var regionInfo = System.Globalization.RegionInfo.CurrentRegion; 
var currencyCode = regionInfo.ISOCurrencySymbol; 
1

Windows Phone 8では、デバイスの領域を変更すると、アクセスするマーケットプレイスが変更されます。

たとえば、携帯電話の地域をオーストラリアから米国に変更すると、米国の店舗にアクセスします。その店舗からの購入は、現地通貨で行われます(その地域で支払い方法が承認されていると仮定します。つまり、米国のクレジットカード)。

したがって、WP7とは異なり、市場はライブIDのロケールにリンクされていないため、システムロケールは適切な回避策にする必要があります。

関連する問題