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.
Questo articolo dimostra come utilizzare i membri dello spazio dei nomi Windows.Services.Store per richiedere l'acquisto dell'app corrente o di uno dei suoi componenti aggiuntivi per conto dell'utente. Ad esempio, se l'utente ha attualmente una versione di prova dell'app, puoi utilizzare questo processo per acquistare una licenza completa per l'utente. In alternativa, puoi usare questo processo per acquistare un componente aggiuntivo, ad esempio un nuovo livello di gioco per l'utente.
Per richiedere l'acquisto di un'app o di un componente aggiuntivo, lo spazio dei nomi Windows.Services.Store fornisce diversi metodi:
- Se conosci l'ID dello Store dell'app o del componente aggiuntivo, puoi usare il metodo RequestPurchaseAsync della classe StoreContext.
- Se si dispone già di un
che rappresenta l'app o il componente aggiuntivo, è possibile usare i metodi di RequestPurchaseAsyncStoreProduct ,StoreSku oStoreAvailability oggettodi questi oggetti. Per esempi di modi diversi per recuperare un StoreProduct nel codice, vedi Ottenere informazioni sul prodotto per le app e i componenti aggiuntivi.
Ogni metodo presenta un'interfaccia utente di acquisto standard e si completa in modo asincrono una volta che la transazione è conclusa. Il metodo restituisce un oggetto che indica se la transazione ha avuto esito positivo.
Annotazioni
Lo spazio dei nomi Windows.Services.Store è stato introdotto in Windows 10, versione 1607, e può essere usato solo nei progetti che hanno come destinazione Windows 10 Anniversary Edition (10.0; Build 14393) o una versione successiva in Visual Studio. Se l'app è destinata a una versione precedente di Windows 10, devi usare lo spazio dei nomi Windows.ApplicationModel.Store anziché lo spazio dei nomi Windows.Services.Store. Per altre informazioni, vedi questo articolo.
Prerequisiti
Questo esempio presenta i prerequisiti seguenti:
- Un progetto di Visual Studio per un'app UWP (Universal Windows Platform) destinata a Windows 10 Anniversary Edition (10.0; Build 14393) o versione successiva.
- Hai creato un invio di app nel Centro per i partner e questa app viene pubblicata nello Store. Facoltativamente, puoi configurare l'app in modo che non sia individuabile nello Store durante il test. Per altre informazioni, vedere le linee guida per i test .
- Se vuoi abilitare gli acquisti in-app per un componente aggiuntivo dell'app, devi anche creare il componente aggiuntivo nel Centro per i partner.
Il codice in questo esempio presuppone:
- Il codice viene eseguito nel contesto di una Page contenente un ProgressRing chiamato
workingProgressRing
e un TextBlock chiamatotextBlock
. Questi oggetti vengono usati per indicare che si sta verificando un'operazione asincrona e per visualizzare rispettivamente i messaggi di output. - Il file di codice include l'istruzione using per lo spazio dei nomi Windows.Services.Store.
- L'app è un'app a utente singolo che viene eseguita solo nel contesto dell'utente che ha avviato l'app. Per altre informazioni, vedere Acquisti in-app e versioni di valutazione.
Annotazioni
Se si dispone di un'applicazione desktop che usa il Desktop Bridge, potrebbe essere necessario aggiungere codice aggiuntivo non illustrato in questo esempio per configurare l'oggetto StoreContext. Per altre informazioni, vedere Uso della classe StoreContext in un'applicazione desktop che usa Desktop Bridge.
Esempio di codice
Questo esempio illustra come usare il metodo RequestPurchaseAsync della classe StoreContext per acquistare un'app o un componente aggiuntivo con un ID Store conosciuto . Per un'applicazione di esempio completa, vedere l'esempio di Store.
private StoreContext context = null;
public async void PurchaseAddOn(string storeId)
{
if (context == null)
{
context = StoreContext.GetDefault();
// If your app is a desktop app that uses the Desktop Bridge, you
// may need additional code to configure the StoreContext object.
// For more info, see https://aka.ms/storecontext-for-desktop.
}
workingProgressRing.IsActive = true;
StorePurchaseResult result = await context.RequestPurchaseAsync(storeId);
workingProgressRing.IsActive = false;
// Capture the error message for the operation, if any.
string extendedError = string.Empty;
if (result.ExtendedError != null)
{
extendedError = result.ExtendedError.Message;
}
switch (result.Status)
{
case StorePurchaseStatus.AlreadyPurchased:
textBlock.Text = "The user has already purchased the product.";
break;
case StorePurchaseStatus.Succeeded:
textBlock.Text = "The purchase was successful.";
break;
case StorePurchaseStatus.NotPurchased:
textBlock.Text = "The purchase did not complete. " +
"The user may have cancelled the purchase. ExtendedError: " + extendedError;
break;
case StorePurchaseStatus.NetworkError:
textBlock.Text = "The purchase was unsuccessful due to a network error. " +
"ExtendedError: " + extendedError;
break;
case StorePurchaseStatus.ServerError:
textBlock.Text = "The purchase was unsuccessful due to a server error. " +
"ExtendedError: " + extendedError;
break;
default:
textBlock.Text = "The purchase was unsuccessful due to an unknown error. " +
"ExtendedError: " + extendedError;
break;
}
}
Argomenti correlati
- acquisti in-app e prove gratuite
- Ottenere informazioni sul prodotto per le app e i componenti aggiuntivi
- Ottenere informazioni sulla licenza per le app e i componenti aggiuntivi
- Abilitare gli acquisti di componenti aggiuntivi di consumo
- Implementare una versione di prova della tua app
- esempio di Store