Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Indipendentemente dal fatto che la tua app sia gratuita o meno, puoi vendere contenuti, altre app o nuove funzionalità dell'app (ad esempio sbloccare il livello successivo di un gioco) direttamente all'interno dell'app. Qui ti mostreremo come abilitare questi prodotti nella tua app.
Importante
Questo articolo illustra come usare i membri dello spazio dei nomi Windows.ApplicationModel.Store per abilitare gli acquisti di prodotti in-app. Questo spazio dei nomi non viene più aggiornato con nuove funzionalità ed è consigliabile usare invece lo spazio dei nomi Windows.Services.Store. Lo spazio dei nomi Windows.Services.Store supporta i tipi di componenti aggiuntivi più recenti, ad esempio componenti aggiuntivi e sottoscrizioni di consumo gestiti dallo Store, ed è progettato per essere compatibile con i tipi futuri di prodotti e funzionalità supportati dal Centro per i partner e dallo Store. Lo spazio dei nomi Windows.Services.Store è stato introdotto in Windows 10, versione 1607, e può essere usato solo nei progetti che puntano a Windows 10 Anniversary Edition (10.0; Build 14393) o una versione successiva in Visual Studio. Per altre informazioni sull'abilitazione degli acquisti di prodotti in-app tramite lo spazio dei nomi Windows.Services.Store, vedere questo articolo.
Nota
I prodotti in-app non possono essere offerti da una versione di prova di un'app. I clienti che usano una versione di valutazione dell'app possono acquistare un prodotto in-app solo se acquistano una versione completa dell'app.
Prerequisiti
- Un'app di Windows in cui aggiungere funzionalità che i clienti possono acquistare.
- Quando si codificano e si testano i nuovi prodotti in-app per la prima volta, è necessario usare l'oggetto CurrentAppSimulator anziché l'oggetto CurrentApp. In questo modo è possibile verificare la logica di licenza usando chiamate simulate al server licenze anziché chiamare il server live. A tale scopo, è necessario personalizzare il file denominato WindowsStoreProxy.xml in %userprofile%\AppData\local\packages\<nome del pacchetto>\LocalState\Microsoft\Windows Store\ApiData. Il simulatore di Microsoft Visual Studio crea questo file quando esegui l'app per la prima volta oppure puoi caricarne uno personalizzato in fase di esecuzione. Per ulteriori informazioni, vedi Uso del file WindowsStoreProxy.xml con CurrentAppSimulator.
- Questo argomento fa riferimento anche agli esempi di codice forniti nell'esempio di Store. Questo esempio è un ottimo modo per acquisire esperienza pratica con le diverse opzioni di monetizzazione disponibili per le app UWP (Universal Windows Platform).
Passaggio 1: Inizializzare le informazioni sulla licenza per l'app
Quando la tua app viene inizializzata, inizializza CurrentApp o CurrentAppSimulator per ottenere l'oggetto LicenseInformation della tua app e abilitare gli acquisti di un prodotto in-app.
void InitializeApp()
{
// Some app initialization code...
// Initialize the license info for use in the app that is uploaded to the Store.
// Uncomment the following line in the release version of your app.
// licenseInformation = CurrentApp.LicenseInformation;
// Initialize the license info for testing.
// Comment the following line in the release version of your app.
licenseInformation = CurrentAppSimulator.LicenseInformation;
// Other app initialization code...
}
Passaggio 2: Aggiungere le offerte in-app all'app
Per ogni funzionalità che vuoi rendere disponibile tramite un prodotto in-app, crea un'offerta e aggiungila alla tua app.
Importante
Devi aggiungere tutti i prodotti in-app che vuoi presentare ai tuoi clienti alla tua app prima di inviarli allo Store. Se vuoi aggiungere nuovi prodotti in-app in un secondo momento, devi aggiornare l'app e inviare nuovamente una nuova versione.
Creare un token di offerta in-app
È possibile identificare ogni prodotto in-app nell'app tramite un token. Questo token è una stringa definita e usata nell'app e nello Store per identificare un prodotto in-app specifico. Assegnargli un nome univoco (per l'app) e un nome significativo in modo da poter identificare rapidamente la funzionalità corretta che rappresenta durante la codifica. Ecco alcuni esempi di nomi:
- "SpaceMissionLevel4"
- "ContosoCloudSave"
- RainbowThemePack
Nota
Il token dell'offerta in-app usato nel codice deve corrispondere al valore ID prodotto specificato quando si definire il componente aggiuntivo corrispondente per l'app nel Centro per i partner.
Codificare la funzionalità in un blocco condizionale
È necessario inserire il codice per ogni funzionalità associata a un prodotto in-app in un blocco condizionale che verifica se il cliente ha una licenza per usare tale funzionalità.
Di seguito è riportato un esempio che illustra come codificare una funzionalità del prodotto denominata featureName in un blocco condizionale specifico della licenza. La stringa, featureName, è il token che identifica in modo univoco questo prodotto all'interno dell'app e viene usato anche per identificarlo nello Store.
if (licenseInformation.ProductLicenses["featureName"].IsActive) { // the customer can access this feature } else { // the customer can' t access this feature }
Aggiungere l'interfaccia utente di acquisto per questa funzionalità
La tua app deve anche fornire ai tuoi clienti un modo per acquistare il prodotto o la funzionalità offerti dal prodotto in-app. Non possono acquistarli tramite lo Store nello stesso modo in cui hanno acquistato l'app completa.
Ecco come verificare se il cliente possiede già un prodotto in-app e, in caso contrario, visualizza la finestra di dialogo di acquisto in modo che possa acquistarlo. Sostituire il commento "mostra la finestra di dialogo di acquisto" con il codice personalizzato per la finestra di dialogo di acquisto (ad esempio una pagina con un semplice pulsante "Acquista questa app!").
async void BuyFeature() { if (!licenseInformation.ProductLicenses["featureName"].IsActive) { try { // The customer doesn't own this feature, so // show the purchase dialog. await CurrentAppSimulator.RequestProductPurchaseAsync("featureName", false); //Check the license state to determine if the in-app purchase was successful. } catch (Exception) { // The in-app purchase was not completed because // an error occurred. } } else { // The customer already owns this feature. } }
Passaggio 3: Modificare il codice di test nelle chiamate finali
Questo è un passaggio semplice: cambia ogni riferimento a CurrentAppSimulator in CurrentApp nel codice dell'app. Non è più necessario specificare il file WindowsStoreProxy.xml, quindi rimuoverlo dal percorso dell'app (anche se potrebbe essere necessario salvarlo per riferimento quando si configura l'offerta in-app nel passaggio successivo).
Passaggio 4: Configurare l'offerta di prodotto in-app nello Store
Nel Centro per i partner passare all'app e creare un componente aggiuntivo che corrisponda all'offerta del prodotto in-app. Definire l'ID prodotto, il tipo, il prezzo e altre proprietà per il componente aggiuntivo. Assicurarsi di configurarlo in modo identico alla configurazione impostata in WindowsStoreProxy.xml durante il test.
Nota
Il token dell'offerta in-app che utilizzi nel codice deve corrispondere all'ID prodotto con il valore specificato per il componente aggiuntivo corrispondente nel Centro per i partner.
Osservazioni
Se sei interessato a fornire ai tuoi clienti opzioni di prodotto di consumo in-app (articoli che possono essere acquistati, usati e quindi acquistati di nuovo, se lo si desidera), passa all 'argomento Abilitare gli acquisti di prodotti di consumo in-app.
Se devi usare le ricevute per verificare che l'utente abbia effettuato un acquisto in-app, assicurati di esaminare Usare le ricevute per verificare gli acquisti di prodotti.