Condividi tramite


Inviare richieste al Microsoft Store

A partire da Windows 10 versione 1607, Windows SDK fornisce API per le operazioni relative allo Store (ad esempio gli acquisti in-app) nello spazio dei nomi Windows.Services.Store. Tuttavia, anche se i servizi che supportano lo Store vengono costantemente aggiornati, ampliati e migliorati nelle nuove versioni del sistema operativo, in genere le nuove API vengono aggiunte a Windows SDK solo nelle versioni principali del sistema operativo.

Forniamo il metodo SendRequestAsync come modalità flessibile per mettere a disposizione delle app Universal Windows Platform (UWP) le nuove operazioni sullo Store prima che venga pubblicata una nuova versione di Windows SDK. È possibile usare questo metodo per inviare richieste allo Store relative alle nuove operazioni che non dispongono ancora di un'API corrispondente nell'ultima versione di Windows SDK.

Nota

Il metodo SendRequestAsync è disponibile solo per le app progettate per Windows 10, versione 1607 o successive. Alcune delle richieste supportate da questo metodo sono supportate solo nelle versioni successive alla 1607 di Windows 10.

SendRequestAsync è un metodo statico della classe StoreRequestHelper. Per chiamare questo metodo, è necessario passare al metodo le informazioni seguenti:

  • Un oggetto StoreContext che fornisce informazioni sull'utente per cui si desidera eseguire l'operazione. Per altre informazioni su questo oggetto, vedere Introduzione alla classe StoreContext.
  • Un valore integer che identifica la richiesta che si desidera inviare allo Store.
  • Se la richiesta supporta qualsiasi argomento, è anche possibile passare una stringa in formato JSON contenente gli argomenti da passare insieme alla richiesta.

Nel seguente esempio viene illustrato come chiamare questo metodo. Questo esempio richiede l'utilizzo di istruzioni per gli spazi dei nomi Windows.Services.Store e System.Threading.Tasks.

public async Task<bool> AddUserToFlightGroup()
{
    StoreSendRequestResult result = await StoreRequestHelper.SendRequestAsync(
        StoreContext.GetDefault(), 8,
        "{ \"type\": \"AddToFlightGroup\", \"parameters\": { \"flightGroupId\": \"your group ID\" } }");

    if (result.ExtendedError == null)
    {
        return true;
    }

    return false;
}

Vedere le sezioni seguenti per informazioni sulle richieste attualmente disponibili tramite il metodo SendRequestAsync. Questo articolo sarà aggiornato quando verrà aggiunto il supporto per le nuove richieste.

Richiesta di valutazioni e recensioni in-app

Dall'app è possibile aprire a livello di codice una finestra di dialogo che chiede al cliente di valutare l'app e inviare una recensione passando il valore integer di richiesta 16 al metodo SendRequestAsync. Per altre informazioni, vedere Mostrare una finestra di dialogo di valutazione e recensione nell'app.

Richieste relative a scenari di gruppi di versioni di anteprima

Importante

Tutte le richieste dei gruppi di versioni di anteprima descritte in questa sezione non sono attualmente disponibili per la maggior parte degli account per sviluppatori. Queste richieste non avranno esito positivo a meno che l'account per sviluppatori non sia appositamente fornito da Microsoft.

Il metodo SendRequestAsync supporta un set di richieste per scenari di gruppi di versioni di anteprima, come l'aggiunta di un utente o un dispositivo a un gruppo di versioni di anteprima. Per inviare queste richieste, passare il valore 7 o 8 al parametro requestKind insieme a una stringa in formato JSON al parametro parametersAsJson che indica la richiesta da inviare e ogni altro argomento correlato. Il metodo supporta anche le richieste per eseguire il mapping di un PFN con un BigID (ProductID dal catalogo visualizzato). Per inviare questa richiesta, passare il valore 9 al parametro requestKind. I valori di requestKind sono diversi nei seguenti modi.

Richiesta del valore del tipo Descrizione
7 Le richieste vengono eseguite nel contesto del dispositivo corrente. Questo valore può essere utilizzato solo nei dispositivi Windows 10, versione 1703 o successive.
8 Le richieste vengono eseguite nel contesto dell'utente attualmente connesso allo Store. Questo valore può essere utilizzato nei dispositivi Windows 10, versione 1607 o successive.
9 Le richieste restituiscono BigID (ProductId) da PackageFamilyName tramite una richiesta HTTP al Catalogo di visualizzazione con autenticazione anonima.

Al momento sono implementate le seguenti richieste di gruppi di versioni di anteprima.

Recuperare le variabili remote per il gruppo di versioni di anteprima più alto in classifica

Importante

Al momento questa richiesta non è disponibile per la maggior parte degli account per sviluppatori. Questa richiesta non avrà esito positivo a meno che l'account per sviluppatori non sia appositamente fornito da Microsoft.

Questa richiesta recupera le variabili remote per il gruppo di versioni di anteprima più alto in classifica per l'utente o dispositivo corrente. Per inviare questa richiesta, passare le seguenti informazioni ai parametri requestKind e parametersAsJson del metodo SendRequestAsync.

Parametro Descrizione
requestKind Specificare 7 per restituire il gruppo di versioni di anteprima con classificazione più alta per il dispositivo; oppure specificare 8 per restituire il gruppo di versioni di anteprima più alto per l'utente e dispositivo correnti. Si consiglia di usare il valore 8 per il parametro requestKind, perché questo valore restituirà il gruppo di versioni di anteprima più alto in classifica per l'appartenenza sia dell'utente che del dispositivo corrente.
parametersAsJson Passare una stringa in formato JSON contenente i dati illustrati nell'esempio seguente.

L'esempio seguente illustra il formato dei dati JSON da passare a parametersAsJson. Il campo tipo deve essere assegnato alla stringa GetRemoteVariables. Assegnare il campo projectId all'ID del progetto nel quale sono state definite le variabili remote nel Centro per i partner.

{ 
    "type": "GetRemoteVariables", 
    "parameters": "{ \"projectId\": \"your project ID\" }" 
}

Una volta inviata la richiesta, la proprietà Response del valore restituito StoreSendRequestResult contiene una stringa in formato JSON con i seguenti campi.

Campo Descrizione
anonimo Un valore booleano, dove true indica che l'identità dell'utente o del dispositivo non era presente nella richiesta, mentre false indica che l'identità dell'utente o del dispositivo era presente nella richiesta.
name Una stringa contenente il nome del gruppo di versioni di anteprima più alto in classifica al quale appartiene il dispositivo o l'utente.
impostazioni Un dizionario di coppie chiave/valore contenenti il nome e il valore delle variabili remote configurate dallo sviluppatore per il gruppo di versioni di anteprima.

L'esempio seguente illustra un valore restituito per questa richiesta.

{ 
  "anonymous": false, 
  "name": "Insider Slow",
  "settings":
  {
      "Audience": "Slow"
      ...
  }
}

Aggiungere il dispositivo o utente corrente a un gruppo di versioni di anteprima

Importante

Al momento questa richiesta non è disponibile per la maggior parte degli account per sviluppatori. Questa richiesta non avrà esito positivo a meno che l'account per sviluppatori non sia appositamente fornito da Microsoft.

Per inviare questa richiesta, passare le seguenti informazioni ai parametri requestKind e parametersAsJson del metodo SendRequestAsync.

Parametro Descrizione
requestKind Specificare 7 per aggiungere il dispositivo a un gruppo di versioni di anteprima o specificare 8 per aggiungere l'utente attualmente connesso allo Store a un gruppo di versioni di anteprima.
parametersAsJson Passare una stringa in formato JSON contenente i dati illustrati nell'esempio seguente.

L'esempio seguente illustra il formato dei dati JSON da passare a parametersAsJson. Il campo tipo deve essere assegnato alla stringa AddToFlightGroup. Assegnare il campo flightGroupId all'ID del gruppo di versioni di anteprima a cui si desidera aggiungere il dispositivo o l'utente.

{ 
    "type": "AddToFlightGroup", 
    "parameters": "{ \"flightGroupId\": \"your group ID\" }" 
}

Se si verifica un errore con la richiesta, la proprietà HttpStatusCode del valore restituito StoreSendRequestResult contiene il codice di risposta.

Rimuovere il dispositivo o l'utente corrente da un gruppo di versioni di anteprima

Importante

Al momento questa richiesta non è disponibile per la maggior parte degli account per sviluppatori. Questa richiesta non avrà esito positivo a meno che l'account per sviluppatori non sia appositamente fornito da Microsoft.

Per inviare questa richiesta, passare le seguenti informazioni ai parametri requestKind e parametersAsJson del metodo SendRequestAsync.

Parametro Descrizione
requestKind Specificare 7 per rimuovere il dispositivo da un gruppo di versioni di anteprima o specificare 8 per rimuovere l'utente attualmente connesso allo Store da un gruppo di versioni di anteprima.
parametersAsJson Passare una stringa in formato JSON contenente i dati illustrati nell'esempio seguente.

L'esempio seguente illustra il formato dei dati JSON da passare a parametersAsJson. Il campo tipo deve essere assegnato alla stringa RemoveFromFlightGroup. Assegnare il campo flightGroupId all'ID del gruppo di versioni di anteprima da cui si desidera rimuovere il dispositivo o l'utente.

{ 
    "type": "RemoveFromFlightGroup", 
    "parameters": "{ \"flightGroupId\": \"your group ID\" }" 
}

Se si verifica un errore con la richiesta, la proprietà HttpStatusCode del valore restituito StoreSendRequestResult contiene il codice di risposta.