2013-01-03 10 views
12

Per monitorare gli acquisti in-app effettuati con le nostre applicazioni Windows Phone 8, vorremmo sapere in quale valuta gli acquisti vengono effettuati all'interno dell'applicazione. In questo momento sappiamo che il prezzo utilizzando la proprietà FormattedPrice, in questo modo:Come ottenere la valuta di un prodotto di acquisto in-app su Windows Phone 8?

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

    String price = product.FormattedPrice; 
} 

Questo si traduce in un prezzo formattato con solo un segno, come €0,99 o $0.99. Per questo va bene, ad es. $ questa informazione non è sufficiente: non sappiamo ancora se è dollaro americano, dollaro canadese, dollaro australiano o peso cileno (che è anche $). Vorremmo avere queste informazioni con una corretta ISO 4217 codice valuta (come EUR, USD, CAD, AUD, CLP) o almeno un simbolo che spiega la valuta esatto (come US$, C$, ecc).

su Windows 8, è possibile utilizzare la proprietà ListingInformation.CurrentMarket per ottenere la versione locale del mercato attuale (e quindi la valuta utilizzata), tuttavia v'è una nota nella documentazione:

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

Noi Recon utilizzando il sistema locale non è abbastanza preciso: potrebbe non essere lo stesso delle impostazioni locali utilizzate per il mercato corrente (ma potremmo sbagliarvi lì!).

Esiste un modo per determinare correttamente la valuta di acquisto in-app da un'applicazione Windows Phone 8?

+0

Ho avuto un dubbio! Il valore viene convertito automaticamente come quando sto tentando di utilizzare il simulatore qui e l'importo non viene convertito in base alla valuta locale. – AbsoluteSith

risposta

11

WP8 utilizza la regione del profilo di pagamento di Live ID per selezionare il mercato utilizzato dal telefono e non è possibile modificarlo tramite un'impostazione sul telefono. Lo so solo perché il mio profilo di pagamento è impostato in Canada in qualche modo (io provengo dagli Stati Uniti) e non riesco a modificarlo tramite un'impostazione sul telefono.

Tuttavia, tornando alla domanda iniziale: il telefono riporterà sempre la cultura utilizzata negli acquisti di app tramite System.Globalization.RegionInfo.CurrentRegion. Pertanto, è possibile ottenere in modo affidabile il codice valuta corretto utilizzato negli acquisti di app da:

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

In Windows Phone 8, la modifica della regione sul dispositivo cambierà il marketplace a cui si accede.

Ad esempio, se cambio la regione sul mio telefono dall'Australia agli Stati Uniti, accedo allo store negli Stati Uniti. Qualsiasi acquisto da quel negozio, sarà effettuato nella valuta locale (presumendo che io abbia un metodo di pagamento accettato in quella regione, ad esempio una carta di credito degli Stati Uniti).

Quindi le impostazioni internazionali di sistema dovrebbero essere una soluzione adatta ai tuoi scopi, diversamente dal WP7 il tuo mercato non è collegato alle impostazioni internazionali del live id.