Condividi tramite


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.

  1. 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.

  2. 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.

  3. 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.

  4. Se stai aggiungendo nuove icone per l'invio prepara le icone e aggiungile a un archivio ZIP.

  5. 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.

  6. 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:

    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);
    
  7. 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
    
  8. 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.

  9. 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:
  • NotSet
  • BookDownload
  • EMagazine
  • ENewspaper
  • MusicDownload
  • MusicStream
  • OnlineDataStorage
  • VideoDownload
  • VideoStream
  • Asp
  • OnlineDownload
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:
  • Sempre
  • OneDay
  • ThreeDays
  • FiveDays
  • OneWeek
  • TwoWeeks
  • OneMonth
  • TwoMonths
  • ThreeMonths
  • SixMonths
  • OneYear
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:
  • Immediate
  • Manuale
  • SpecificDate
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:
  • Hidden
  • Pubblico
  • Privato
  • NotSet
stato string Lo stato dell'invio. Questo può essere uno dei seguenti valori:
  • None
  • Annullati
  • PendingCommit
  • CommitStarted
  • CommitFailed
  • PendingPublication
  • Pubblicazione
  • Pubblicazione completata
  • PublishFailed
  • PreProcessing
  • PreProcessingFailed
  • Certification
  • CertificationFailed
  • Versione
  • ReleaseFailed
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:
  • None
  • PendingUpload
  • Caricato
  • PendingDelete

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.

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:

  • Se il valore isAdvancedPricingModel della risorsa del prezzo è vero, i valori della fascia di prezzo disponibili per il tuo account sono Tier1012 - Tier1424.
  • Se il valore isAdvancedPricingModel della risorsa del prezzo è vero, i valori della fascia di prezzo disponibili per il tuo account sono Tier1012 - Tier1424.
Per visualizzare la tabella completa dei livelli di prezzo disponibili per il tuo account sviluppatore, inclusi i prezzi specifici del mercato associati a ciascun livello, vai alla pagina Prezzi e disponibilità per qualsiasi app inviata nel Centro per i partner e fare clic su link visualizza tabella nella sezione Mercati e prezzi personalizzati (per alcuni account sviluppatore, questo collegamento si trova nella sezione prezzi ).

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.