Gestisci gli Invii di componenti aggiuntivi
L'API di invio di Microsoft Store fornisce metodi che puoi utilizzare per gestire gli invii di componenti aggiuntivi (noti anche come prodotti in-app o IAP) per le tue app. Per un'introduzione all'API di invio di Microsoft Store, inclusi i prerequisiti per l'utilizzo dell'API, vedereCrea e gestisci invii utilizzando i servizi di Microsoft Store.
Importante
Se utilizzi l'API di invio di Microsoft Store per creare un invio per un componente aggiuntivo, assicurati di apportare ulteriori modifiche all'invio solo utilizzando l'API, anziché apportare modifiche nel Centro per i partner Se utilizzi il Centro per i partner per modificare un invio creato originariamente utilizzando l'API, non potrai più modificare o confermare tale invio utilizzando l'API. In alcuni casi, l'invio potrebbe rimanere in uno stato di errore in cui non è possibile procedere nel processo di invio. In tal caso, è necessario eliminare l'invio e crearne uno nuovo.
Metodi per la gestione degli invii di componenti aggiuntivi
Utilizzare i seguenti metodi per ottenere, creare, aggiornare, confermare o eliminare l'invio di un componente aggiuntivo. Prima di poter utilizzare questi metodi, il componente aggiuntivo deve già esistere nell'account del Centro partner. È possibile creare un componente aggiuntivo nel Centro per i partner definendo il tipo di prodotto e l'ID prodotto o utilizzando i metodi API di invio di Microsoft Store descritti in Gestisci componenti aggiuntivi.
Method | URI | Descrizione |
---|---|---|
GET | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} | Ottieni un invio di un componente aggiuntivo esistente |
GET | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/status | Ottieni lo stato dell'invio di un componente aggiuntivo esistente |
POST | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions | Crea un nuovo invio di un componente aggiuntivo |
PUT | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} | Aggiorna un componente aggiuntivo inviato esistente |
POST | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/commit | Effettua l'invio di un componente aggiuntivo nuovo o aggiornato |
DELETE | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} | Elimina un componente aggiuntivo inviato |
Creare un invio di componente aggiuntivo
Per creare un invio per un componente aggiuntivo, seguire questa procedura.
Se non lo hai ancora fatto, completa i prerequisiti descritti n Crea e gestisci invii utilizzando i servizi di Microsoft Store, inclusa l'associazione di un'applicazione Azure AD al tuo account del Centro per i partner e l'ottenimento dell'ID client e della chiave. Devi farlo solo una volta; dopo aver ottenuto l'ID client e la chiave, è possibile riutilizzarli ogni volta che è necessario creare un nuovo token di accesso di Azure AD.
Ottieni un token di accesso di Azure AD. Devi passare questo token di accesso ai metodi nell'API di invio di Microsoft Store. Dopo aver ottenuto un token di accesso, questo sarà disponibile per 60 minuti prima della scadenza. Dopo la scadenza del token, è possibile ottenerne uno nuovo.
Esegui il metodo seguente nell'API di invio di Microsoft Store. Questo metodo crea un nuovo invio in corso, che è una copia dell'ultimo invio pubblicato. Per maggiori informazioni, vedere Crea un invio aggiuntivo.
POST https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions
Il corpo della risposta contiene un file invio aggiuntivo risorsa che include l'ID del nuovo invio, l'URI della firma di accesso condiviso (SAS) per il caricamento di eventuali icone aggiuntive per l'invio ad Archiviazione BLOB di Azure e tutti i dati per il nuovo invio (come gli elenchi e le informazioni sui prezzi ).
Nota
Un URI SAS fornisce l'accesso a una risorsa sicura nell'archiviazione di Azure senza richiedere chiavi dell'account. Per informazioni di base sugli URI SAS e sul relativo utilizzo con Archiviazione BLOB di Azure, vedere Firme di accesso condiviso, parte 1: comprensione del modello SAS e Firme di accesso condiviso, parte 2: creare e usare una firma di accesso condiviso con l'archiviazione BLOB.
Se stai aggiungendo nuove icone per l'invio prepara le icone e aggiungile a un archivio ZIP.
Aggiorna i dati di invio aggiuntivo con le eventuali modifiche richieste per il nuovo invio ed eseguire il seguente metodo per aggiornare l'invio. Per maggiori informazioni, vedere Aggiorna un invio aggiuntivo.
PUT https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}
Nota
Se stai aggiungendo nuove icone per l'invio, assicurati di aggiornare i dati di invio per fare riferimento al nome e al percorso relativo di questi file nell'archivio ZIP.
Se stai aggiungendo nuove icone per l'invio, carica l'archivio ZIP su Azure Blob Storage utilizzando l'URI SAS fornito nel corpo della risposta del metodo POST chiamato in precedenza. Esistono diverse librerie di Azure che puoi usare per eseguire questa operazione su una varietà di piattaforme, tra cui:
- Libreria client di archiviazione di Azure per .NET
- Azure Storage SDK per Java
- SDK di Archiviazione di Azure per Python
Nell'esempio di codice C# seguente viene illustrato come caricare un archivio ZIP nell'archiviazione BLOB di Azure utilizzando la classe CloudBlockBlob nella libreria client di archiviazione di Azure per .NET. Questo esempio presuppone che l'archivio ZIP sia già stato scritto in un oggetto flusso.
string sasUrl = "https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-b592-4439-9a9d-fb0f014902ec?sv=2014-02-14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-06-17T20:45:51Z&sp=rwl"; Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob blockBob = new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob(new System.Uri(sasUrl)); await blockBob.UploadFromStreamAsync(stream);
Conferma l'invio eseguendo il metodo seguente. Ciò avviserà il Centro per i partner che hai terminato l'invio e che gli aggiornamenti dovrebbero ora essere applicati al tuo account. Per maggiori informazioni, vedere Effettua un invio aggiuntivo.
POST https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/commit
Controlla lo stato del commit eseguendo il metodo seguente. Per maggiori informazioni, vedere Ottieni lo stato di un invio aggiuntivo.
GET https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/status
Per confermare lo stato di invio, rivedere il valore dellostato nel corpo della risposta. Questo valore dovrebbe cambiare da CommitStarted aPreProcessingse la richiesta ha esito positivo oppure a CommitFailed se ci sono errori nella richiesta. Se ci sono errori, il campo di statusDetails contiene ulteriori dettagli sull'errore.
Una volta completato correttamente l'invio, questo viene inviato allo Store per l'inserimento. È possibile continuare a monitorare lo stato di avanzamento dell'invio utilizzando il metodo precedente o visitando il Centro per i partner.
Esempi di codice
I seguenti articoli forniscono esempi di codice dettagliati che dimostrano come creare un invio di componente aggiuntivo in diversi linguaggi di programmazione:
Modulo StoreBroker PowerShell
In alternativa alla chiamata diretta all'API di invio di Microsoft Store, forniamo anche un modulo PowerShell open source che implementa un'interfaccia della riga di comando sopra l'API. Questo modulo è chiamato StoreBroker. Puoi utilizzare questo modulo per gestire gli invii di app, voli e componenti aggiuntivi dalla riga di comando invece di chiamare direttamente l'API di invio di Microsoft Store oppure puoi semplicemente esplorare l'origine per visualizzare altri esempi su come chiamare questa API. Il modulo StoreBroker viene utilizzato attivamente in Microsoft come modalità principale con cui molte applicazioni di prima parte vengono inviate allo Store.
Per maggiori informazioni, vedere la nostra pagina StoreBroker su GitHub.
Risorse dati
I metodi API di invio di Microsoft Store per la gestione degli invii di componenti aggiuntivi utilizzano le seguenti risorse di dati JSON.
Risorsa di invio aggiuntiva
Questa risorsa descrive un invio di componente aggiuntivo.
{
"id": "1152921504621243680",
"contentType": "EMagazine",
"keywords": [
"books"
],
"lifetime": "FiveDays",
"listings": {
"en": {
"description": "English add-on description",
"icon": {
"fileName": "add-on-en-us-listing2.png",
"fileStatus": "Uploaded"
},
"title": "Add-on Title (English)"
},
"ru": {
"description": "Russian add-on description",
"icon": {
"fileName": "add-on-ru-listing.png",
"fileStatus": "Uploaded"
},
"title": "Add-on Title (Russian)"
}
},
"pricing": {
"marketSpecificPricings": {
"RU": "Tier3",
"US": "Tier4",
},
"sales": [],
"priceId": "Free",
"isAdvancedPricingModel": true
},
"targetPublishDate": "2016-03-15T05:10:58.047Z",
"targetPublishMode": "Immediate",
"tag": "SampleTag",
"visibility": "Public",
"status": "PendingCommit",
"statusDetails": {
"errors": [
{
"code": "None",
"details": "string"
}
],
"warnings": [
{
"code": "ListingOptOutWarning",
"details": "You have removed listing language(s): []"
}
],
"certificationReports": [
{
}
]
},
"fileUploadUrl": "https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-b592-4439-9a9d-fb0f014902ec?sv=2014-02-14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-06-17T20:45:51Z&sp=rwl",
"friendlyName": "Submission 2"
}
Questa risorsa ha i seguenti valori.
Valore | Tipo | Descrizione |
---|---|---|
id | string | L'ID dell'invio. Questo ID è disponibile nei dati di risposta per le richieste a creare un invio aggiuntivo, ottenere tutti i componenti aggiuntivi, eottenere un componente aggiuntivo. Per un invio creato nel Centro per i partner, questo ID è disponibile anche nell'URL della pagina di invio nel Centro per i partner. |
contentType | string | Il tipo di contenuto fornito nel componente aggiuntivo. I valori possibili sono i seguenti:
|
parole chiave | array | Matrice di stringhe che contengono fino a 10 parole chiave per il componente aggiuntivo. L'app può eseguire query per i componenti aggiuntivi usando queste parole chiave. |
lifetime | string | Durata del componente aggiuntivo. I valori possibili sono i seguenti:
|
presentazioni | oggetto | Un dizionario di coppie chiave-valore, in cui ciascuna chiave è un codice paese ISO 3166-1 alpha-2 di due lettere e ciascun valore è un elenco delle risorse che contiene informazioni sull'elenco del componente aggiuntivo. |
prezzi | oggetto | Una risorsa per i prezzi che contiene informazioni sui prezzi per il componente aggiuntivo. |
targetPublishMode | string | Modalità di pubblicazione per l'invio. I valori possibili sono i seguenti:
|
targetPublishDate | string | Data di pubblicazione per l'invio in formato ISO 8601, se targetPublishMode è impostato su SpecificDate. |
tag | string | I dati per sviluppatori personalizzati per il componente aggiuntivo (queste informazioni sono state precedentemente chiamate tag). |
visibility | string | Visibilità del componente aggiuntivo. I valori possibili sono i seguenti:
|
stato | string | Lo stato dell'invio. Questo può essere uno dei seguenti valori:
|
statusDetails | oggetto | Una risorsa di dettagli sullo stato che contiene dettagli aggiuntivi sullo stato dell'invio, incluse informazioni su eventuali errori. |
fileUploadUrl | string | L'URI della firma di accesso condiviso (SAS) per caricare eventuali pacchetti per l'invio. Se stai aggiungendo nuovi pacchetti per l'invio, carica l'archivio ZIP che contiene i pacchetti su questo URI. Per maggiori informazioni, vedere Crea un invio aggiuntivo. |
friendlyName | string | Il nome descrittivo dell'invio, come mostrato nel Centro per i partner. Questo valore viene generato quando crei l'invio. |
Elenco delle risorse
Questa risorsa contiene informazioni sull'elenco per un componente aggiuntivo. Questa risorsa ha i seguenti valori.
Valore | Tipo | Descrizione |
---|---|---|
description | stringa | La descrizione dell'elenco dei componenti aggiuntivi. |
icona | oggetto | Una risorsa per le icone che contiene i dati per l'icona dell'elenco dei componenti aggiuntivi. |
title | string | Il titolo dell'elenco dei componenti aggiuntivi. |
Risorsa icona
Questa risorsa contiene dati sull'icona per un elenco di componenti aggiuntivi. Questa risorsa ha i seguenti valori.
Valore | Tipo | Descrizione |
---|---|---|
fileName | string | Il nome del file icona nell'archivio ZIP che hai caricato per l'invio. L'icona deve essere un file .png che misura esattamente 300 x 300 pixel. |
fileStatus | string | Lo stato del file icona. Questo può essere uno dei seguenti valori:
|
Risorsa per i prezzi
Questa risorsa contiene informazioni sui prezzi per il componente aggiuntivo. Questa risorsa ha i seguenti valori.
Valore | Tipo | Descrizione |
---|---|---|
marketSpecificPricings | oggetto | Un dizionario di coppie chiave-valore, in cui ciascuna chiave è un codice paese ISO 3166-1 alpha-2 di due lettere e ciascun valore è un livello di prezzo. Questi elementi rappresentano iprezzi personalizzati per il tuo componente aggiuntivo in un mercato specifico. Qualsiasi elemento in questo dizionario sovrascrive il prezzo base specificato dal valore priceId per il mercato specifico |
sales | array | Deprecato. Un array di risorse di vendita che contiene informazioni di vendita per il componente aggiuntivo. |
priceId | string | Un livello di prezzo che specifica ilprezzo baseper il componente aggiuntivo. |
isAdvancedPricingModel | boolean | Se vero, il tuo account sviluppatore ha accesso alla serie ampliata di livelli di prezzo da 0,99 USD a 1999,99 USD. Se falso, il tuo account sviluppatore ha accesso al set originale di livelli di prezzo da 0,99 USD a 999,99 USD. Per ulteriori informazioni sui diversi livelli, vedere i livelli di prezzo. Note Questo campo è di sola lettura. |
Risorsa di vendita
Questa risorsa contiene informazioni sulla vendita di un componente aggiuntivo.
Importante
La risorsa di vendita non è più supportata e attualmente non è possibile ottenere o modificare i dati di vendita per l'invio di un componente aggiuntivo utilizzando l'API di invio di Microsoft Store. In futuro aggiorneremo l'API di invio di Microsoft Store per introdurre un nuovo modo di accedere a livello di codice alle informazioni sulle vendite per gli invii di componenti aggiuntivi.
- Dopo aver chiamato ilmetodo GET per ottenere l'invio di un componente aggiuntiv il metodo GET per ottenere l'invio di un componente aggiuntivo, il valore dellevendite sarà vuoto. Puoi continuare a utilizzare il Centro per i partner per ottenere i dati di vendita per il tuo componente aggiuntivo inviato.
- v Metodo PUT per aggiornare l'invio di un componente aggiuntivo, l'informazione nel valore delle vendite viene ignorata. Puoi continuare a utilizzare il Centro per i partner per modificare i dati di vendita per il componente aggiuntivo inviato.
Questa risorsa ha i seguenti valori.
Valore | Tipo | Descrizione |
---|---|---|
name | string | Il nome della vendita. |
basePriceId | string | La fascia di prezzo da utilizzare per il prezzo base della vendita. |
startDate | string | La data di inizio della vendita in formato ISO 8601. |
endDate | string | La data di fine della vendita in formato ISO 8601. |
marketSpecificPricings | oggetto | Un dizionario di coppie chiave-valore, in cui ciascuna chiave è un codice paese ISO 3166-1 alpha-2 di due lettere e ciascun valore è un livello di prezzo. Questi elementi rappresentano iprezzi personalizzati per il tuo componente aggiuntivo in un mercato specifico. Qualsiasi elemento in questo dizionario sovrascrive il prezzo base specificato dal valore basePriceId per il mercato specifico |
Risorsa dei dettagli sullo stato
Questa risorsa contiene dettagli aggiuntivi sullo stato di un invio. Questa risorsa ha i seguenti valori.
Valore | Tipo | Descrizione |
---|---|---|
errori | oggetto | Un array di risorse per i dettagli sullo stato che contiene dettagli sull'errore per l'invio. |
avvisi | oggetto | Un array di risorse per i dettagli sullo stato che contiene dettagli di avviso per l'invio. |
certificationReports | oggetto | Un array di risorse del rapporto di certificazione che fornisce l'accesso ai dati del rapporto di certificazione per l'invio. È possibile esaminare questi report per ulteriori informazioni se la certificazione fallisce. |
Risorsa dei dettagli sullo stato
Questa risorsa contiene informazioni aggiuntive su eventuali errori o avvisi correlati per un invio. Questa risorsa ha i seguenti valori.
Valore | Tipo | Descrizione |
---|---|---|
codice | string | Un codice di stato dell'invio che descrive il tipo di errore o avviso.. |
dettagli | string | Un messaggio con maggiori dettagli sul problema. |
Risorsa del rapporto di certificazione
Questa risorsa fornisce l'accesso ai dati del report di certificazione per un invio. Questa risorsa ha i seguenti valori.
Valore | Tipo | Descrizione |
---|---|---|
data | string | La data e l'ora in cui è stato generato il report, in formato ISO 8601. |
reportUrl | string | L'URL da cui è possibile accedere al report. |
Enumerazioni
Questi metodi utilizzano le seguenti enumerazioni.
Livelli di prezzo
I seguenti valori rappresentano i livelli di prezzo disponibili nella risorsa per i prezzi per un invio aggiuntivo.
valore | Descrizione |
---|---|
Base | La fascia di prezzo non è fissata; utilizzare il prezzo base per il componente aggiuntivo. |
NotAvailable | Il componente aggiuntivo non è disponibile nella regione specificata. |
Gratuito | Il componente aggiuntivo è gratuito. |
Fasciaxxxx | Una stringa che specifica il livello di prezzo per il componente aggiuntivo, nel formato fasciaxxxx. Attualmente sono supportate le seguenti fasce di prezzo:
|
Codice di stato dell'invio
I seguenti valori rappresentano il codice di stato di un invio.
valore | Descrizione |
---|---|
Nessuna | Non è stato specificato alcun codice. |
InvalidArchive | L'archivio ZIP contenente il pacchetto non è valido o ha un formato di archivio non riconosciuto. |
MissingFiles | L'archivio ZIP non contiene tutti i file elencati nei dati di invio oppure si trovano nella posizione sbagliata nell'archivio. |
PackageValidationFailed | La convalida di uno o più pacchetti inviati non è riuscita. |
InvalidParameterValue | Uno dei parametri nel corpo della richiesta non è valido. |
InvalidOperation | L'operazione che hai tentato non è valida. |
InvalidState | L'operazione tentata non è valida per lo stato attuale del pacchetto. |
ResourceNotFound | Impossibile trovare il pacchetto specificato. |
ServiceError | Un errore interno del servizio ha impedito la riuscita della richiesta. Riprova la richiesta. |
ListingOptOutWarning | Lo sviluppatore ha rimosso un elenco da un invio precedente o non ha incluso le informazioni sull'elenco supportate dal pacchetto. |
ListingOptInWarning | Lo sviluppatore ha aggiunto un elenco. |
UpdateOnlyWarning | Lo sviluppatore sta tentando di inserire qualcosa che abbia solo il supporto per gli aggiornamenti. |
Altro | L'invio è in uno stato non riconosciuto o senza categoria. |
PackageValidationWarning | Il processo di convalida del pacchetto ha generato un avviso. |