要跟踪我们的
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)或至少一个解释确切货币的符号(如美元,C $等)的信息.
在Windows 8上,可以使用ListingInformation.CurrentMarket属性获取当前市场的区域设置(因此使用的是货币),但文档中有一个注释:
Windows Phone 8 This API is not implemented and will throw an exception if called.
我们使用系统区域设置侦测不够精确:它可能不同于当前市场使用的区域设置(但是我们可能在那里有错误)!
有没有办法从Windows Phone 8应用程序中正确确定应用内购买货币?
WP8使用您的Live ID支付资料区域选择手机使用的市场,您无法通过手机上的设置进行更改.我只是碰巧知道这一点,因为我的付款资料是以某种方式设置为加拿大(我来自美国),我无法通过手机上的设置进行更改.
然而,回到原来的问题:您的手机将始终通过System.Globalization.RegionInfo.CurrentRegion报告在应用程序购买中使用的文化.因此,您可以从以下位置可靠地获取用于应用程序购买的正确货币代码:
var regionInfo = System.Globalization.RegionInfo.CurrentRegion; var currencyCode = regionInfo.ISOCurrencySymbol;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。