Compartir a través de


Administrar envíos de complementos

La API de envío de Microsoft Store proporciona métodos que puedes usar para administrar envíos de complementos (también conocidos como productos desde la aplicación o IAP) para tus aplicaciones. Para obtener una introducción a la API de envío de Microsoft Store, incluidos los requisitos previos para usar la API, consulta Crear y administrar envíos mediante los servicios de Microsoft Store.

Importante

Si usas la API de envío de Microsoft Store para crear un envío para un complemento, asegúrate de realizar cualquier cambio adicional en el envío únicamente mediante la API, en lugar de realizar cambios en el Centro de Partners. Si usa el Centro de partners para cambiar un envío que creó originalmente mediante la API, ya no podrá cambiar ni confirmar ese envío mediante la API. En algunos casos, el envío podría dejarse en un estado de error en el que no puede continuar en el proceso de envío. Si esto ocurre, debe eliminar el envío y crear un nuevo envío.

Métodos para administrar envíos de complementos

Utilice los métodos siguientes para obtener, crear, actualizar, confirmar o eliminar una solicitud de complemento. Para poder usar estos métodos, el complemento ya debe existir en la cuenta del Centro de partners. Para crear un complemento en el Centro de partners, definir su tipo de producto e identificador de producto o mediante los métodos de la API de envío de Microsoft Store descritos en Administrar complementos.

Método URI Descripción
OBTENER https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} Obtener una presentación de complemento existente
OBTENER https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/status Obtener el estado de una presentación de complemento existente
PUBLICACIÓN https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions Crear una nueva presentación de complemento
PON https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} Actualizar una presentación de complemento existente
PUBLICACIÓN https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/commit Confirmar un envío de complemento nuevo o actualizado
ELIMINAR https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} Eliminar una presentación de complemento

Crear una presentación de complemento

Para crear una presentación para un complemento, siga este proceso.

  1. Si aún no lo ha hecho, complete los requisitos previos descritos en Crear y administrar envíos mediante los servicios de Microsoft Store, incluida la asociación de una aplicación de Azure AD con su cuenta del Centro de partners y la obtención del identificador y la clave de cliente. Sólo tienes que hacer esto una vez; después de tener el identificador y la clave de cliente, puede reutilizarlos en cualquier momento que necesite crear un nuevo token de acceso de Azure AD.

  2. Obtener un token de acceso de Azure AD. Debes pasar este token de acceso a los métodos de la API de envío de aplicaciones de Microsoft Store. Después de obtener un token de acceso, tiene 60 minutos para usarlo antes de que expire. Una vez que expire el token, puede obtener uno nuevo.

  3. Ejecute el siguiente método en la API de envío de Microsoft Store. Este método crea un nuevo envío en curso, que es una copia del último envío publicado. Para obtener más información, consulte Crear una presentación de complemento.

    POST https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions
    

    El cuerpo de la respuesta contiene un envío de complemento recurso que incluye el identificador del nuevo envío, el URI de firma de acceso compartido (SAS) para cargar los iconos de complemento para el envío a Azure Blob Storage y todos los datos del nuevo envío (como las listas e información de precios).

    Nota:

    Un URI de SAS proporciona acceso a un recurso seguro en Azure Storage sin necesidad de claves de cuenta. Para obtener información general sobre los URI de SAS y su uso con Azure Blob Storage, consulte firmas de acceso compartido, parte 1: Descripción del modelo de SAS y firmas de acceso compartido, parte 2: Creación y uso de una SAS con Blob Storage.

  4. Si va a agregar nuevos iconos para la presentación, prepare los iconos y agréguelos a un archivo ZIP.

  5. Actualice el envío del complemento datos con los cambios necesarios para el nuevo envío y ejecute el siguiente método para actualizar el envío. Para obtener más información, vea Actualizar un envío de complemento.

    PUT https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}
    

    Nota:

    Si va a agregar nuevos iconos para el envío, asegúrese de actualizar los datos de envío para hacer referencia al nombre y la ruta de acceso relativa de estos archivos en el archivo ZIP.

  6. Si va a agregar nuevos iconos para la entrega, cargue el archivo ZIP en Azure Blob Storage mediante el URI de SAS que se proporcionó en el cuerpo de la respuesta del método POST que invocó anteriormente. Hay diferentes bibliotecas de Azure que puede usar para hacerlo en una variedad de plataformas, entre las que se incluyen:

    En el ejemplo de código de C# siguiente se muestra cómo cargar un archivo ZIP en Azure Blob Storage mediante la clase CloudBlockBlob en la biblioteca cliente de Azure Storage para .NET. En este ejemplo se supone que el archivo ZIP ya se ha escrito en un objeto de secuencia.

    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. Confirme el envío ejecutando el método siguiente. Esto avisará al Centro de asociados que ha completado su envío y que las actualizaciones deben aplicarse ahora a su cuenta. Para obtener más información, ver Realizar una entrega de complemento.

    POST https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/commit
    
  8. Compruebe el estado de confirmación ejecutando el método siguiente. Para obtener más información, vea Obtener el estado de un envío de complemento.

    GET https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/status
    

    Para confirmar el estado del envío, revise el valor del estado en el cuerpo de la respuesta. Este valor debe cambiar de CommitStarted a PreProcessing si la solicitud tiene éxito o a CommitFailed si hay errores en la solicitud. Si hay errores, el campo statusDetails contiene más detalles sobre el error.

  9. Una vez completado correctamente el commit, el envío se envía a la tienda para el procesamiento. Puedes seguir supervisando el progreso del envío mediante el método anterior o visitando el Centro de partners.

Ejemplos de código

En los artículos siguientes se proporcionan ejemplos de código detallados que muestran cómo crear un envío de complemento en varios lenguajes de programación diferentes:

Módulo de PowerShell StoreBroker

Como alternativa a llamar directamente a la API de envío de Microsoft Store, también proporcionamos un módulo de PowerShell de código abierto que implementa una interfaz de línea de comandos sobre la API. Este módulo se denomina StoreBroker. Puedes usar este módulo para administrar los envíos de aplicaciones, vuelos y complementos desde la línea de comandos en lugar de llamar directamente a la API de envío de Microsoft Store, o simplemente puedes examinar el origen para ver más ejemplos de cómo llamar a esta API. El módulo StoreBroker se usa activamente en Microsoft como la forma principal de enviar muchas aplicaciones de primera entidad a la Tienda.

Para obtener más información, consulte nuestra página de StoreBroker en GitHub.

Recursos de datos

Los métodos de la API de envío de Microsoft Store para administrar envíos de complementos usan los siguientes recursos de datos JSON.

Recurso de envío de complemento

Este recurso describe un envío de complemento.

{
  "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"
}

Este recurso tiene los siguientes valores.

Importancia Tipo Descripción
identificación cuerda / cadena El identificador del envío. Este identificador está disponible en los datos de respuesta de las solicitudes para crear una presentación de complemento, obtener todos los complementosy obtener un complemento. Para una presentación que se creó en el Centro de socios, este identificador también está disponible en la URL de la página de la presentación en el Centro de socios.
tipo de contenido cuerda / cadena El tipo de contenido que se proporciona en el complemento. Este puede ser uno de los siguientes valores:
  • NotSet
  • DescargaDeLibros
  • EMagazine
  • Periódico Electrónico
  • DescargaDeMúsica
  • MusicStream
  • OnlineDataStorage
  • Descarga de Vídeo
  • VideoStream
  • Áspid
  • Descarga en línea
palabras clave arreglo Un conjunto de cadenas que puede contener hasta 10 palabras clave para el complemento. La aplicación puede consultar complementos con estas palabras clave.
duración de vida / vida útil cuerda / cadena Duración del complemento. Este puede ser uno de los siguientes valores:
  • Para siempre
  • Un día
  • ThreeDays
  • FiveDays
  • OneWeek
  • TwoWeeks
  • UnMes
  • TwoMonths
  • TresMeses
  • SeisMeses
  • UnAño
Listados objeto Diccionario de pares clave y valor, donde cada clave es un código de país ISO 3166-1 alfa-2 de dos letras y cada valor es un recurso de enumeración que contiene información de descripción del complemento.
Precios objeto Un recurso de tarifación que contiene información de precios para el suplemento.
modoDePublicaciónObjetivo cuerda / cadena Modo de publicación de la presentación. Este puede ser uno de los siguientes valores:
  • Inmediata
  • Manual de instrucciones
  • FechaEspecífica
fechaObjetivoDePublicación cuerda / cadena La fecha de publicación del envío en formato ISO 8601, si el modo de publicación objetivo (targetPublishMode) está establecido en una fecha específica (SpecificDate).
etiqueta cuerda / cadena El datos personalizados del desarrollador para el complemento (esta información antes se llamaba etiqueta).
visibilidad cuerda / cadena Visibilidad del complemento. Este puede ser uno de los siguientes valores:
  • Oculto
  • Público
  • Privada
  • No establecido
estado cuerda / cadena Estado del envío. Este puede ser uno de los siguientes valores:
  • Ninguno
  • Cancelado
  • CompromisoPendiente
  • CommitStarted
  • Falló el commit
  • Pendiente de publicación
  • Publicación
  • Publicado
  • Error de publicación
  • Preprocesamiento
  • Error en el preprocesamiento
  • Certificación
  • Fallo de certificación
  • Versión
  • Lanzamiento fallido
detalles del estado objeto Un estado detalla el recurso que contiene detalles adicionales sobre el estado del envío, incluida la información sobre los errores.
fileUploadUrl cuerda / cadena URI de firma de acceso compartido (SAS) para subir paquetes para la presentación. Si va a agregar nuevos paquetes para el envío, cargue el archivo ZIP que contiene los paquetes a este URI. Para obtener más información, consulte Crear una presentación de complemento.
nombre amistoso cuerda / cadena Nombre amigable del envío, como se muestra en el Centro de partners. Este valor se genera automáticamente al crear el envío.

Enumerar recurso

Este recurso contiene información de descripción de un complemento. Este recurso tiene los siguientes valores.

Importancia Tipo Descripción
descripción cuerda / cadena Descripción de la lista de complementos.
icono objeto Un recurso de icono que contiene datos para el icono del listado de complementos.
título cuerda / cadena Título de la lista de complementos.

Recurso de icono

Este recurso contiene datos de icono para una lista de complementos. Este recurso tiene los siguientes valores.

Importancia Tipo Descripción
Nombre del archivo cuerda / cadena El nombre del archivo de icono en el archivo ZIP que cargó para la presentación. El icono debe ser un archivo .png que mide exactamente 300 x 300 píxeles.
estado del archivo cuerda / cadena Estado del archivo de icono. Este puede ser uno de los siguientes valores:
  • Ninguno
  • Carga pendiente
  • Subido
  • PendienteDelete

Recurso de precios

Este recurso contiene información de precios para el complemento. Este recurso tiene los siguientes valores.

Importancia Tipo Descripción
precios específicos del mercado objeto Diccionario de pares clave y valor, donde cada clave es un código de país ISO 3166-1 alfa-2 de dos letras y cada valor es un nivel de precio. Estos elementos representan los precios personalizados de para el complemento en mercados específicos. Cualquier elemento de este diccionario anula el precio base especificado por el valor de priceId para el mercado especificado.
ventas arreglo En desuso. Matriz de recursos de venta que contienen información de ventas para el complemento.
priceId cuerda / cadena Un nivel de precio que especifica el precio base para el complemento.
ModeloDePreciosAvanzado booleano Si true, su cuenta de desarrollador tiene acceso al conjunto expandido de niveles de precios desde 0,99 USD hasta 1999,99 USD. Si false, su cuenta de desarrollador tiene acceso al conjunto original de niveles de precio desde 0,99 USD hasta 999,99 USD. Para obtener más información sobre los distintos niveles, consulte planes de tarifa.

Nota Este campo es de solo lectura.

Recurso comercial

Estos recursos contienen información de venta para un complemento.

Importante

El recurso Sale ya no se admite y actualmente no se pueden obtener ni modificar los datos de venta para una publicación de complemento mediante la API de publicación de Microsoft Store. En el futuro, actualizaremos la API de envío de Microsoft Store para ofrecer una nueva forma de acceso programático a la información de ventas para las presentaciones de complementos.

  • Después de llamar al método GET de para obtener un envío de complemento, el valor de ventas de estará vacío. Puedes seguir usando el Centro de Partners para obtener los datos de venta de la solicitud de complemento adicional.
  • Al llamar al método PUT de para actualizar una presentación de complemento, se omite la información del valor de ventas . Puedes seguir usando el Centro de Partners para modificar los datos de venta de la presentación del complemento.

Este recurso tiene los siguientes valores.

Importancia Tipo Descripción
nombre cuerda / cadena Nombre de la venta.
basePriceId cuerda / cadena El nivel de precios a usar para el precio base de la venta.
Fecha de inicio cuerda / cadena Fecha de inicio de la venta en formato ISO 8601.
fecha de finalización cuerda / cadena Fecha de finalización de la venta en formato ISO 8601.
precios específicos del mercado objeto Diccionario de pares clave y valor, donde cada clave es un código de país ISO 3166-1 alfa-2 de dos letras y cada valor es un nivel de precio. Estos elementos representan los precios personalizados de para el complemento en mercados específicos. Cualquier elemento de este diccionario reemplaza el precio base especificado por el identificador basePriceId para el mercado especificado.

Recurso de detalles de estado

Este recurso contiene detalles adicionales sobre el estado de un envío. Este recurso tiene los siguientes valores.

Importancia Tipo Descripción
Errores objeto Conjunto de recursos de detalles de estado que contienen detalles de error de la presentación.
Advertencias objeto Conjunto de recursos de detalles de estado que contienen detalles de advertencia para la presentación.
informes de certificación objeto Conjunto de recursos relacionados con el informe de certificación que proporcionan acceso a los datos del informe de certificación para la presentación. Puede examinar estos informes para obtener más información si se produce un error en la certificación.

Recurso detallado de estado

Este recurso proporciona información adicional sobre cualquier error o advertencia relacionada con una presentación. Este recurso tiene los siguientes valores.

Importancia Tipo Descripción
código cuerda / cadena Código de estado de envío que describe el tipo de error o advertencia.
Detalles cuerda / cadena Mensaje con más detalles sobre el problema.

Informe de certificación de recursos

Este recurso proporciona acceso a los datos del informe de certificación para un envío. Este recurso tiene los siguientes valores.

Importancia Tipo Descripción
fecha cuerda / cadena Fecha y hora en que se generó el informe, en formato ISO 8601.
URL de informe cuerda / cadena Dirección URL en la que puede acceder al informe.

Enumeraciones

Estos métodos usan las siguientes enumeraciones.

Planes de tarifa

Los siguientes valores representan los niveles de precio disponibles en el recurso de precios para el envío de un complemento en el recurso .

Importancia Descripción
Base El nivel de precio no está fijado; use el precio base del complemento.
No disponible El complemento no está disponible en la región especificada.
Gratuito El complemento es gratuito.
Nivelxxxx Cadena que especifica el nivel de precio para el complemento, en el formato Nivelxxxx. Actualmente, se admiten los siguientes intervalos de planes de tarifa:

  • Si el esAdvancedPricingModel valor del recurso de precios de es verdadero, los valores disponibles del plan de tarifa de la cuenta son Tier1012 - Tier1424.
  • Si el valor de esAdvancedPricingModel del recurso de precios es falso, los niveles de precios disponibles para su cuenta son Tier2 - Tier96.
Para ver la tabla completa de niveles de precios disponibles para su cuenta de desarrollador, incluidos los precios específicos del mercado asociados a cada nivel, vaya a la página Precio y disponibilidad para cualquiera de las presentaciones de aplicaciones en el Centro de Partners y haga clic en el vínculo ver tabla en la sección Mercados y precios personalizados (para algunas cuentas de desarrollador, este vínculo se encuentra en la sección Precios).

Código de estado de envío

Los valores siguientes representan el código de estado de un envío.

Importancia Descripción
Ninguno No se especificó ningún código.
ArchivoInválido El archivo ZIP que contiene el paquete no es válido o tiene un formato de archivo no reconocido.
MissingFiles El archivo ZIP no tiene todos los archivos que se mostraron en los datos de envío o se encuentran en la ubicación incorrecta del archivo.
ErrorDeValidacionDelPaquete No se pudo validar uno o varios paquetes del envío.
Valor de Parámetro No Válido Uno de los parámetros del cuerpo de la solicitud no es válido.
Operación no válida La operación que intentó no es válida.
Estado inválido La operación que intentó no es válida para el estado actual del paquete de vuelo.
RecursoNoEncontrado No se encontró el paquete de vuelo especificado.
Error de servicio Un error interno del servicio impedía que la solicitud se realizara correctamente. Vuelva a intentar la solicitud.
Advertencia de exclusión de listado El desarrollador quitó un listado de un envío anterior o no incluyó información de listado admitida por el paquete.
Advertencia para unirse a la lista El desarrollador agregó una lista.
UpdateOnlyWarning El desarrollador está intentando insertar algo que solo tenga compatibilidad con actualizaciones.
Otros El envío está en un estado no reconocido o no clasificado.
AdvertenciaDeValidaciónDePaquete El proceso de validación del paquete produjo una advertencia.