Pour assurer le suivi des achats in-app effectués avec nos applications Windows Phone 8, nous aimerions savoir dans quelle devise les achats sont effectués à l'intérieur de l'application. Actuellement, nous connaissons le prix à l'aide de la propriété FormattedPrice, comme suit :
public static async void LoadProductListing()
{
ListingInformation listings = await CurrentApp.LoadListingInformationAsync();
ProductListing product = listings.ProductListings["SomeProductID"];
String price = product.FormattedPrice;
}
Cela donne un prix formaté avec seulement un signe comme €0,99
ou $0.99
. Pour €
c'est bien, par exemple $
ces informations ne sont pas suffisantes : nous ne savons toujours pas s'il s'agit du dollar américain, du dollar canadien, du dollar australien ou du peso chilien (dont le signe est également $). Nous aimerions avoir cette information avec un véritable système d'information. ISO 4217 le code de la monnaie (comme EUR
, USD
, CAD
, AUD
, CLP
) ou au moins un symbole qui explique la devise exacte (comme US$
, C$
etc).
Sous Windows 8, il est possible d'utiliser le ListingInformation.CurrentMarket
pour obtenir la locale du marché actuel (et donc la devise utilisée), mais il y a une remarque dans la documentation :
Windows Phone 8
This API is not implemented and will throw an exception if called.
Nous reconnaissons que l'utilisation de la locale du système n'est pas assez précise : elle peut ne pas être la même que la locale utilisée pour le marché actuel (mais nous pouvons nous tromper !).
Existe-t-il un moyen de déterminer correctement la devise des achats in-app à partir d'une application Windows Phone 8 ?