为了跟踪我们的 Windows Phone 8 应用程序中所进行的应用内购买,我们希望知道这些购买是使用哪种货币在应用程序内进行的。目前,我们使用FormattedPrice属性来获取价格,如下所示:
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货币代码(如EUR
、USD
、CAD
、AUD
、CLP
)或至少一个解释确切货币的符号(如US$
、C$
等)来获得这些信息。
在Windows 8上,可以使用ListingInformation.CurrentMarket
属性获取当前市场的区域设置(因此使用的货币),但文档中有一条备注:
Windows Phone 8
This API is not implemented and will throw an exception if called.
我们认为使用系统区域设置并不够精确:它可能与当前市场使用的区域设置不同(但我们可能是错误的!)。
有没有办法在Windows Phone 8应用程序中正确确定应用内购买货币?