Pruebas y compras desde la aplicación

Windows SDK proporciona API que puedes usar para implementar las siguientes características y ganar más dinero en tu aplicación de Plataforma universal de Windows (UWP):

  • Compras desde la aplicación Tanto si la aplicación es gratuita como si no, puedes vender contenido o una nueva funcionalidad de la aplicación (por ejemplo, desbloquear el siguiente nivel de un juego) desde la aplicación.

  • Funcionalidad de prueba Si configuras la aplicación como una evaluación gratuita en el Centro de partners, puedes incitar a tus clientes a comprar la versión completa de la aplicación excluyendo o limitando algunas funciones durante el periodo de prueba. También puedes habilitar características, como banners o marcas de agua, que solo se muestran durante la prueba antes de que un cliente compre la aplicación.

En este artículo se proporciona información general sobre cómo funcionan las compras desde la aplicación y las pruebas en aplicaciones para UWP.

Elección del espacio de nombres que se va a usar

Existen dos espacios de nombres diferentes que puedes usar para agregar compras desde la aplicación y la funcionalidad de prueba a las aplicaciones para UWP, según la versión de Windows 10 o Windows 11 a la que se destinen tus aplicaciones. Aunque las API de estos espacios de nombres cumplen los mismos objetivos, están diseñadas de forma bastante diferente y el código no es compatible entre las dos API.

  • Windows.Services.Store a partir de la versión 1607 de Windows 10, las aplicaciones pueden usar la API de este espacio de nombres para implementar compras desde la aplicación y pruebas. Se recomienda usar los miembros de este espacio de nombres si el proyecto de la aplicación tiene como destino Windows 10 Anniversary Edition (10.0; compilación 14393) o una versión posterior en Visual Studio. Este espacio de nombres admite los tipos de complemento más recientes, como los complementos de consumibles administrados por Store, y está diseñado para ser compatible con futuros tipos de productos y características compatibles con el Centro de partners y Store. Para obtener más información sobre este espacio de nombres, consulta la sección Compras desde la aplicación y pruebas con el espacio de nombres Windows.Services.Store de este artículo.

  • Windows.ApplicationModel.Store Todas las versiones de Windows 10 y Windows 11 también admiten una API anterior para las compras desde la aplicación y las pruebas en este espacio de nombres. Para obtener información sobre el espacio de nombres Windows.ApplicationModel.Store, consulta Compras desde la aplicación y pruebas con el espacio de nombres Windows.ApplicationModel.Store.

Importante

El espacio de nombres Windows.ApplicationModel.Store ya no se actualiza con nuevas características, y se recomienda usar el espacio de nombres Windows.Services.Store en su lugar si es posible para la aplicación. El espacio de nombres Windows.ApplicationModel.Store no se admite en las aplicaciones de escritorio de Windows que usan el Puente de dispositivo de escritorio o en aplicaciones o juegos que usan un espacio aislado de desarrollo en el Centro de partners (por ejemplo, este es el caso de cualquier juego que se integre con Xbox Live).

Conceptos básicos

Todos los artículos que se ofrecen en Store se denominan generalmente un producto. La mayoría de los desarrolladores solo funcionan con los siguientes tipos de productos: aplicaciones y complementos.

Un complemento es un producto o característica que pones a disposición de tus clientes en el contexto de tu aplicación: por ejemplo, la moneda que se usará en una aplicación o un juego, los nuevos mapas o armas para un juego, la posibilidad de usar la aplicación sin anuncios o el contenido digital, como música o vídeos, para las aplicaciones capaces de ofrecer ese tipo de contenido. Cada aplicación y complemento tienen una licencia asociada que indica si el usuario tiene derecho a usar la aplicación o el complemento. Si el usuario tiene derecho a usar la aplicación o el complemento como prueba, la licencia también proporciona información adicional sobre la prueba.

Para ofrecer un complemento a los clientes en la aplicación, debes definir el complemento de la aplicación en el Centro de partners para comunicarlo a Store. A continuación, la aplicación puede usar las API en el espacio de nombres Windows.Services.Store o Windows.ApplicationModel.Store para ofrecer el complemento para la venta al usuario como una compra desde la aplicación.

Las aplicaciones para UWP pueden ofrecer los siguientes tipos de complementos.

Tipo de complemento Descripción
Duradero Complemento que persiste durante la vigencia especificada en el Centro de partners.

De forma predeterminada, los complementos duraderos nunca expiran, en cuyo caso solo se pueden comprar una vez. Si especificas una duración determinada para el complemento, el usuario puede volver a comprar el complemento después de que expire.
Consumible administrado por el desarrollador Un complemento que se puede comprar, usar y, a continuación, volver a comprar después de que se consuma. Eres responsable de realizar un seguimiento del saldo del usuario de los elementos que representa el complemento.

Cuando el usuario consuma cualquier artículo asociado al complemento, serás responsable de mantener el saldo del usuario y de informar a Store que la compra del complemento se ha realizado una vez que el usuario haya consumido todos los artículos. El usuario no puede volver a comprar el complemento hasta que la aplicación haya notificado la compra anterior del complemento como completada.

Por ejemplo, si el complemento representa 100 monedas en un juego y el usuario consume 10 monedas, la aplicación o el servicio deben mantener el nuevo saldo restante de 90 monedas para el usuario. Después de que el usuario haya consumido las 100 monedas, la aplicación debe notificar que complemento se ha agotado y, a continuación, el usuario puede volver a comprar el complemento de 100 monedas.
Consumible administrado por Store Un complemento que se puede comprar, usar y volver a comprar en cualquier momento. Store realiza un seguimiento del saldo del usuario de los elementos que representa el complemento.

Cuando el usuario consume algún elemento asociado al complemento, debes notificar dichos elementos como completados en Store, tras lo cual Store actualiza el saldo del usuario. El usuario puede comprar el complemento tantas veces como desee (no es necesario consumir primero los artículos). La aplicación puede consultar el saldo actual del usuario en cualquier momento.

Por ejemplo, si el complemento representa una cantidad inicial de 100 monedas en un juego y el usuario consume 50 monedas, la aplicación notifica a Store que se han completado 50 unidades del complemento, y Store actualiza el saldo restante. Si el usuario vuelve a comprar el complemento para adquirir 100 monedas más, ahora tendrá 150 monedas en total.

Nota Para usar consumibles administrados por Store, la aplicación debe tener como destino Windows 10 Anniversary Edition (10.0; compilación 14393) o una versión posterior en Visual Studio, y debe usar el espacio de nombres Windows.Services.Store en lugar del espacio de nombres Windows.ApplicationModel.Store.
Subscription Un complemento duradero en el que se sigue cobrando al cliente a intervalos periódicos para que siga utilizándolo. El cliente puede cancelar la suscripción en cualquier momento para evitar cargos adicionales.

Nota Para usar complementos de suscripción, la aplicación debe tener como destino Windows 10 Anniversary Edition (10.0; compilación 14393) o una versión posterior en Visual Studio, y debe usar el espacio de nombres Windows.Services.Store en lugar del espacio de nombres Windows.ApplicationModel.Store.

Nota:

Otros tipos de complementos, como los complementos durables con paquetes (también conocidos como contenido descargable o DLC) solo están disponibles para un conjunto de desarrolladores restringido y no se tratan en esta documentación.

Compras desde la aplicación y pruebas con el espacio de nombres Windows.Services.Store

En esta sección se proporciona información general sobre las tareas y conceptos importantes del espacio de nombres Windows.Services.Store. Este espacio de nombres solo está disponible para las aplicaciones destinadas a Windows 10 Anniversary Edition (10.0; compilación 14393) o una versión posterior en Visual Studio (esto corresponde a Windows 10, versión 1607). Se recomienda que las aplicaciones usen el espacio de nombres Windows.Services.Store en lugar del espacio de nombres Windows.ApplicationModel.Store si es posible. Para obtener información sobre el espacio de nombres Windows.ApplicationModel.Store, consulte este artículo.

En esta sección

Introducción a la clase StoreContext

El punto de entrada principal del espacio de nombres Windows.Services.Store es la claseStoreContext. Esta clase proporciona métodos que puedes usar para obtener información acerca de la aplicación actual y sus complementos disponibles, obtener información de licencia de la aplicación actual o sus complementos, comprar una aplicación o un complemento para el usuario actual y realizar otras tareas. Para obtener un objeto StoreContext, realiza una de las acciones siguientes:

  • En una aplicación de usuario único (es decir, una aplicación que se ejecuta solamente en el contexto del usuario que la inició), usa el método estático GetDefault para obtener un objeto StoreContext que puedes usar para acceder a los datos relacionados con Microsoft Store del usuario. La mayoría de las aplicaciones de Plataforma universal de Windows (UWP) son aplicaciones de usuario único.

    Windows.Services.Store.StoreContext context = StoreContext.GetDefault();
    
  • En una aplicación multiusuario, usa el método estático GetForUser para obtener un objeto StoreContext que puedes usar para acceder a los datos relacionados con Microsoft Store de un usuario específico que ha iniciado sesión con su cuenta Microsoft al usar la aplicación. En el ejemplo siguiente se obtiene un objeto StoreContext para el primer usuario disponible.

    var users = await Windows.System.User.FindAllAsync();
    Windows.Services.Store.StoreContext context = StoreContext.GetForUser(users[0]);
    

Nota:

Las aplicaciones de escritorio de Windows que usan el Puente de escritorio debe dar pasos adicionales para configurar el objeto StoreContext antes de poder usar dicho objeto. Para obtener más información, consulte esta sección.

Después de tener un objeto StoreContext, puedes empezar a llamar a métodos de este objeto para obtener información del producto de Store para la aplicación actual y sus complementos, recuperar la información de licencia de la aplicación actual y sus complementos, comprar una aplicación o un complemento para el usuario actual y realizar otras tareas. Para obtener más información sobre las tareas comunes que puede realizar con este objeto, consulte los artículos siguientes:

Para obtener una aplicación de ejemplo que muestre cómo usar StoreContext y otros tipos en el espacio de nombres Windows.Services.Store, consulta el ejemplo de Store.

Implementación de compras desde la aplicación

Para ofrecer una compra desde la aplicación a los clientes de la aplicación mediante el espacio de nombres Windows.Services.Store:

  1. Si la aplicación ofrece complementos que los clientes pueden comprar, crea envíos de complementos para la aplicación en el Centro de partners.

  2. Escribe código en la aplicación para recuperar la información del producto de la aplicación o un complemento ofrecido por la aplicación y, a continuación, determina si la licencia está activa (es decir, si el usuario tiene una licencia para usar la aplicación o el complemento). Si la licencia no está activa, muestra una interfaz de usuario que ofrezca la aplicación o el complemento para la venta al usuario como compra desde la aplicación.

  3. Si el usuario decide comprar la aplicación o el complemento, usa el método adecuado para comprar el producto:

  4. Prueba la implementación siguiendo las instrucciones de prueba de este artículo.

Implementación de la funcionalidad de prueba

Para excluir o limitar las características de una versión de prueba de la aplicación mediante el espacio de nombres Windows.Services.Store:

  1. Configura la aplicación como una evaluación gratuita en el Centro de partners.

  2. Escribe código en la aplicación para recuperar la información del producto de la aplicación o un complemento ofrecido por la aplicación y, a continuación, determina si la licencia asociada a la aplicación es una licencia de prueba.

  3. Excluye o limita determinadas características de la aplicación si se trata de una versión de prueba y, a continuación, habilita las características cuando el usuario compre una licencia completa. Para obtener más información y un ejemplo de código, consulta Implementación de una versión de prueba de una aplicación.

  4. Prueba la implementación siguiendo las instrucciones de prueba de este artículo.

Prueba de la implementación de prueba o compra desde la aplicación

Si la aplicación usa las API del espacio de nombres Windows.Services.Store para implementar la funcionalidad de prueba o compra desde la aplicación, debes publicar la aplicación en Store y descargar la aplicación en el dispositivo de desarrollo para usar su licencia para las pruebas. Sigue este proceso para probar el código:

  1. Si la aplicación aún no está publicada y disponible en Store, asegúrate de que la aplicación cumple los requisitos mínimos del Kit para la certificación de aplicaciones en Windows, envía la aplicación en el Centro de partners y asegúrate de que la aplicación pasa el proceso de certificación. Puedes configurar la aplicación para que no se pueda encontrar en la Store mientras la pruebas. Ten en cuenta la configuración adecuada de los paquetes piloto. Es posible que los paquetes piloto configurados incorrectamente no se puedan descargar.

  2. Luego, asegúrate de haber completado lo siguiente:

  3. Con el proyecto abierto en Visual Studio, haz clic en el menú Proyecto, selecciona Store y, a continuación, haga clic en Asociar aplicación con Store. Sigue las instrucciones del Asistente para asociar el proyecto de aplicación con la aplicación de tu cuenta del Centro de partners que quieres usar para las pruebas.

    Nota:

    Si no asocias el proyecto con una aplicación de Store, los métodos StoreContext establecen la propiedad ExtendedError de sus valores de retorno en el valor del código de error 0x803F6107. Este valor indica que Store no tiene ningún conocimiento sobre la aplicación.

  4. Si aún no lo has hecho, instala la aplicación desde Store que especificaste en el paso anterior, ejecútala una vez y, a continuación, ciérrala. Esto garantiza que se instale una licencia válida para la aplicación en el dispositivo de desarrollo.

  5. En Visual Studio, empieza a ejecutar o depurar el proyecto. El código debe recuperar los datos de la aplicación y el complemento de la aplicación de Store que has asociado con el proyecto local. Si se te pide que vuelvas a instalar la aplicación, sigue las instrucciones y, a continuación, ejecuta o depura el proyecto.

    Nota:

    Después de completar estos pasos, puedes seguir con la actualización del código de la aplicación y, después, depurar el proyecto actualizado en el equipo de desarrollo sin enviar nuevos paquetes de aplicación a Store. Solo tienes que descargar la versión de Store de la aplicación en el equipo de desarrollo una vez para obtener la licencia local que se usará para las pruebas. Solo tienes que enviar nuevos paquetes de aplicaciones a Store una vez que hayas completado las pruebas y quieras poner a disposición de tus clientes las características relacionadas con las compras desde la aplicación o las pruebas.

Si la aplicación utiliza el espacio de nombres Windows.ApplicationModel.Store, puedes utilizar la clase CurrentAppSimulator en la aplicación para simular la información de licencia durante las pruebas antes de enviar su aplicación a la Store. Para obtener más información, consulta Introducción a las clases CurrentApp y CurrentAppSimulator.

Nota:

El espacio de nombres Windows.Services.Store no proporciona una clase que puedas usar para simular información de licencia durante las pruebas. Si usas el espacio de nombres Windows.Services.Store para implementar las pruebas o las compras desde la aplicación, debes publicar la aplicación en Store y descargar la aplicación en el dispositivo de desarrollo para usar su licencia para las pruebas, como se describe anteriormente.

Recibos de compras desde la aplicación

El espacio de nombres Windows.Services.Store no proporciona una API que puedas utilizar para obtener un recibo de transacción para las compras realizadas correctamente en el código de la aplicación. Esta es una experiencia diferente de las aplicaciones que usan el espacio de nombres Windows.ApplicationModel.Store, que pueden usar una API del lado cliente para recuperar un recibo de transacción.

Si implementas compras desde la aplicación con el espacio de nombres Windows.Services.Store y quieres comprobar si un cliente en particular ha comprado una aplicación o un complemento, puedes usar el método de consulta de productos en la API de REST de colecciones de Microsoft Store. Los datos de retorno de este método confirman si el cliente especificado tiene derecho a un producto determinado y proporcionan datos de la transacción en la que el usuario adquirió el producto. La API de colecciones de Microsoft Store usa la autenticación de Azure AD para recuperar esta información.

Uso de la clase StoreContext con el Puente de dispositivo de escritorio

Las aplicaciones de escritorio que usan el Puente de dispositivo de escritorio pueden usar la clase StoreContext para implementar compras y pruebas desde la aplicación. Sin embargo, si tienes una aplicación de escritorio Win32 o una con un identificador de ventana (HWND) asociado al marco de representación (por ejemplo, una aplicación WPF o SDK de Aplicaciones para Windows), la aplicación debe configurar el objeto StoreContext para especificar qué ventana de aplicación es la ventana propietaria en los cuadros de diálogo modales que el objeto muestra.

Muchos miembros de StoreContext (y miembros de otros tipos relacionados a los que se accede a través del objeto StoreContext) muestran un cuadro de diálogo modal al usuario para operaciones relacionadas con Store, como comprar un producto. Si una aplicación de escritorio no configura el objeto StoreContext para especificar la ventana de propietario para los diálogos modales, este objeto devolverá datos o errores inexactos.

Para configurar un objeto StoreContext en una aplicación de escritorio que usa el Puente de dispositivo de escritorio, sigue estos pasos.

Para .NET 6 o posterior

Si la aplicación está escrita en C# con .NET 6 o posterior, sigue estos pasos.

  1. Asegúrate de que la propiedad TargetFramework del archivo del proyecto está establecida en una versión específica de Windows SDK para acceder a las API de Windows Runtime, que proporciona acceso al espacio de nombres WinRT.Interop. Por ejemplo:

    <PropertyGroup>
      <!-- You can also target other versions of the Windows SDK and .NET, e.g. "net6.0-windows10.0.19041.0" -->
      <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
    </PropertyGroup>
    
  2. Obtén un objeto StoreContext mediante el método GetDefault (o GetForUser si la aplicación es una aplicación multiusuario), como se describe anteriormente en este artículo). Para inicializar el cuadro de diálogo con el identificador de ventana especificado, usa los métodos WinRT.Interop.WindowNative.GetWindowHandle y WinRT.Interop.InitializeWithWindow.Initialize (consulta Recuperación de un identificador de ventana (HWND) y Visualización de objetos de la interfaz de usuario de WinRT que dependen de CoreWindow).

    StoreContext context = StoreContext.GetDefault();
    // Obtain window handle by passing in pointer to the window object
    var hwnd = WinRT.Interop.WindowNative.GetWindowHandle(windowObject);
    // Initialize the dialog using wrapper function for IInitializeWithWindow
    WinRT.Interop.InitializeWithWindow.Initialize(context, hwnd); 
    

Para versiones anteriores de .NET o C++

Si la aplicación está escrita con una versión anterior de .NET o en C++, sigue estos pasos.

  1. Realiza una de las siguientes acciones para permitir que la aplicación acceda a la interfaz IInitializeWithWindow:

    • Si tu aplicación está escrita en un lenguaje administrado, como C# o Visual Basic (anterior a .NET 6), declara la interfaz IInitializeWithWindow en el código de la aplicación con el atributo ComImport como se muestra en el siguiente ejemplo de C#. En este ejemplo se supone que el archivo de código tiene una instrucción using para el espacio de nombres System.Runtime.InteropServices.

      [ComImport]
      [Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1")]
      [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
      public interface IInitializeWithWindow
      {
          void Initialize(IntPtr hwnd);
      }
      
    • Si la aplicación está escrita en C++, agrega una referencia al archivo de encabezado shobjidl.h en el código. Este archivo de encabezado contiene la declaración de la interfaz IInitializeWithWindow.

  2. Obtén un objeto StoreContext con el método GetDefault (o GetForUser si tu aplicación es multiusuario) tal como se describe anteriormente en este artículo y conviértelo en un objeto IInitializeWithWindow. A continuación, llama al método IInitializeWithWindow.Initialize y pasa el identificador de la ventana que deseas que sea la propietaria de cualquier diálogo modal que se muestre mediante los métodos StoreContext. En el siguiente ejemplo de C# se muestra cómo pasar el identificador de la ventana principal de la aplicación al método. Consulte también Recuperación de un identificador de ventana (HWND) y Visualización de objetos de la interfaz de usuario de WinRT que dependen de CoreWindow.

    StoreContext context = StoreContext.GetDefault();
    IInitializeWithWindow initWindow = (IInitializeWithWindow)(object)context;
    initWindow.Initialize(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
    

Productos, SKU y disponibilidad

Cada producto de Store tiene al menos una SKU y cada SKU tiene al menos una disponibilidad. Estos conceptos se abstraen de la mayoría de los desarrolladores del Centro de partners, y la mayoría de los desarrolladores nunca definirán las SKU ni las disponibilidades de sus aplicaciones o complementos. Sin embargo, dado que el modelo de objetos de los productos de Store en el espacio de nombres Windows.Services.Store incluye las SKU y las disponibilidades, puede resultar útil disponer de un conocimiento básico de estos conceptos para algunas situaciones.

Object Descripción
Producto Un producto hace referencia a cualquier tipo de producto que esté disponible en Store, incluida una aplicación o un complemento.

Cada producto de Store tiene un objeto StoreProduct correspondiente. Esta clase proporciona propiedades que puedes usar para acceder a datos como el Id. de Store del producto, las imágenes y vídeos de la descripción de Store e información de precios. También proporciona métodos que puedes usar para comprar el producto.
SKU Una SKU es una versión específica de un producto con su descripción, precio y otros detalles únicos del producto. Cada aplicación o complemento tiene una SKU predeterminada. La única vez que la mayoría de los desarrolladores tendrán varias SKU para una aplicación es si publican una versión completa de su aplicación y una versión de prueba (en el catálogo de Store, cada una de estas versiones es una SKU diferente de la misma aplicación).

Algunos publicadores tienen la capacidad de definir sus propias SKU. Por ejemplo, un editor de juegos grande podría lanzar un juego con una SKU que muestre sangre verde en los mercados que no permiten sangre roja y una SKU diferente que muestre sangre roja en todos los demás mercados. Como alternativa, un publicador que vende contenido de vídeo digital podría publicar dos SKU para un vídeo, una SKU para la versión de alta definición y otra SKU para la versión de definición estándar.

Cada SKU de Store tiene un objeto StoreSku correspondiente. Cada StoreProduct tiene una propiedad Skus que puedes usar para acceder a las SKU del producto.
Disponibilidad Una disponibilidad es una versión específica de una SKU con su propia información de precios única. Cada SKU tiene una disponibilidad predeterminada. Algunos publicadores tienen la capacidad de definir sus propias disponibilidades para introducir diferentes opciones de precios para una SKU determinada.

Cada disponibilidad en Store tiene un objeto StoreAvailability correspondiente. Cada StoreSku tiene una propiedad Availabilities que puedes usar para acceder a las disponibilidades de la SKU. Para la mayoría de los desarrolladores, cada SKU tiene una sola disponibilidad predeterminada.

Id. de Store

Cada aplicación, complemento u otro producto de la Store tiene un Id. de Store asociado (esto también se denomina a veces un Id. de Store de producto). Muchas API requieren el Id. de Store para realizar una operación en una aplicación o complemento.

El Id. de Store de cualquier producto de la Tienda es una cadena alfanumérica de 12 caracteres, como 9NBLGGH4R315. Hay varias maneras diferentes de obtener el Id. de Store para un producto en Store:

  • Para una aplicación, puedes obtener el Id. de Store en la página Identidad de la aplicación en el Centro de partners.
  • Para un complemento, puedes obtener el Id. de Store en la página de información general del complemento en el Centro de partners.
  • Para cualquier producto, también puedes obtener el Id. de Store mediante programación por medio la propiedad StoreId del objeto StoreProduct que representa el producto.

En el caso de los productos con SKU y disponibilidades, las SKU y las disponibilidades también tienen sus propios Id. de Store con diferentes formatos.

Object Formato de Id. de Store
SKU El Id. de Store de una SKU tiene el formato <product Store ID>/xxxx, donde xxxx es una cadena alfanumérica de 4 caracteres que identifica una SKU para el producto. Por ejemplo, 9NBLGGH4R315/000N. Este identificador lo devuelve la propiedad StoreId de un objeto StoreSku y, en ocasiones, se denomina Id. de Store de SKU.
Disponibilidad El Id. de Store para una disponibilidad tiene el formato <product Store ID>/xxxx/yyyyyyyyyyyy, donde xxxx es una cadena alfanumérica de 4 caracteres que identifica una SKU para el producto y yyyyyyyyyyyy es una cadena alfanumérica de 12 caracteres que identifica una disponibilidad para la SKU. Por ejemplo, 9NBLGGH4R315/000N/4KW6QZD2VN6X. Este identificador lo devuelve la propiedad StoreId de un objeto StoreAvailability y, en ocasiones, se denomina Id. de Store de disponibilidad.

Uso de identificadores de producto para complementos en el código

Si deseas que un complemento esté disponible para los clientes en el contexto de la aplicación, debes escribir un identificador de producto único para el complemento al crear el envío del complemento en el Centro de partners. Puedes usar este identificador de producto para hacer referencia al complemento en el código, aunque los escenarios específicos en los que puedes usar el identificador de producto dependen del espacio de nombres que uses para las compras desde la aplicación en la aplicación.

Nota:

El identificador de producto que escribes en el Centro de partners para un complemento es diferente al Id. de Store del complemento. El Centro de partners genera el Id. de Store.

Aplicaciones que usan el espacio de nombres Windows.Services.Store

Si la aplicación usa el espacio de nombres Windows.Services.Store, puedes usar el identificador de producto para identificar fácilmente el valor StoreProduct que representa el complemento o el valor StoreLicense que representa la licencia del complemento. El identificador de producto se expone mediante las propiedades StoreProduct.InAppOfferToken y StoreLicense.InAppOfferToken.

Nota:

Aunque el identificador de producto es una manera útil de identificar un complemento en el código, la mayoría de las operaciones del espacio de nombres Windows.Services.Store usan el Id. de Store de un complemento en lugar del identificador de producto. Por ejemplo, para recuperar mediante programación uno o varios complementos conocidos para una aplicación, pasa los Id. de Store (en lugar de los identificadores de producto) de los complementos al método GetStoreProductsAsync. De forma similar, para notificar un complemento consumible como completado, pasa el Id. de Store del complemento (en lugar del identificador de producto) al método ReportConsumableFulfillmentAsync.

Aplicaciones que usan el espacio de nombres Windows.ApplicationModel.Store

Si la aplicación usa el espacio de nombres Windows.ApplicationModel.Store, deberás usar el identificador de producto que asignes a un complemento en el Centro de partners para la mayoría de las operaciones. Por ejemplo: