Compras no aplicativo e avaliações

O SDK do Windows fornece APIs que você pode usar para implementar os seguintes recursos para ganhar mais dinheiro com seu aplicativo da Plataforma Universal do Windows (UWP):

  • Compras no aplicativo Independentemente de seu aplicativo ser gratuito ou não, você pode vender conteúdo ou novas funcionalidades de aplicativo (como desbloquear o próximo nível de um jogo) diretamente dentro do aplicativo.

  • Funcionalidade de avaliação Se você configurar seu aplicativo como uma avaliação gratuita no Partner Center, poderá atrair seus clientes a comprar a versão completa do seu aplicativo excluindo ou limitando alguns recursos durante o período de avaliação. Você também pode habilitar recursos, como faixas ou marcas-d'água, que são mostrados apenas durante a avaliação, antes de o cliente comprar o aplicativo.

Este artigo fornece uma visão geral de como as compras no aplicativo e as avaliações funcionam em aplicativos UWP.

Escolha qual namespace usar

Há dois namespaces diferentes que você pode usar para adicionar compras no aplicativo e funcionalidade de avaliação aos seus aplicativos UWP, dependendo de qual versão do Windows 10 ou Windows 11 seu destino de aplicativos. Embora as APIs nesses namespaces tenha os mesmos objetivos, elas foram criadas de forma bem diferente, e o código não é compatível entre as duas APIs.

  • Windows.Services.Store A partir do Windows 10, versão 1607, os aplicativos podem usar a API nesse namespace para implementar compras e avaliações no aplicativo. Recomendamos que você use os membros nesse namespace se o projeto do aplicativo for voltado para o Windows 10 Anniversary Edition (10.0, Compilação 14393) ou uma versão posterior no Visual Studio. Esse namespace dá suporte aos tipos de complementos mais recentes, como complementos consumíveis gerenciados pela Store, e foi projetado para ser compatível com tipos futuros de produtos e recursos compatíveis com o Partner Center e a Store. Para obter mais informações sobre esse namespace, consulte a seção Compras no aplicativo e avaliações que usam o namespace Windows.Services.Store neste artigo.

  • Windows.ApplicationModel.Store Todas as versões do Windows 10 e Windows 11 também dão suporte a uma API mais antiga para compras e avaliações no aplicativo nesse namespace. Para obter informações sobre o namespace Windows.ApplicationModel.Store, consulte Compras no aplicativo e avaliações usando o namespace Windows.ApplicationModel.Store.

Importante

O namespace Windows.ApplicationModel.Store não está sendo atualizado com os novos recursos e recomendamos que você use o namespace Windows.Services.Store em vez disso, se possível para seu app. Não há suporte para o namespace Windows.ApplicationModel.Store em aplicativos da área de trabalho do Windows que usam o Ponte de Desktop ou em aplicativos ou jogos que usam uma área restrita de desenvolvimento no Partner Center (por exemplo, esse é o caso de qualquer jogo que se integre ao Xbox Live).

Conceitos básicos

Cada item que é oferecido na Store é geralmente chamado de produto. A maioria dos desenvolvedores só trabalha com os seguintes tipos de produtos: apps e complementos.

Um complemento é um produto ou recurso que você disponibiliza para os clientes no contexto do aplicativo: por exemplo, a moeda a ser usada em um aplicativo ou jogo, novos mapas ou armas para um jogo, a possibilidade de usar o aplicativo sem anúncios ou conteúdo digital, como músicas ou vídeos, para aplicativos que tenham a possibilidade de oferecer esse tipo de conteúdo. Todos os aplicativos e complementos têm uma licença associada que indica se o usuário tem direito de usar o aplicativo ou complemento. Se o usuário tiver direito de usar o aplicativo ou complemento como avaliação, a licença também fornece informações adicionais sobre a avaliação.

Para oferecer um complemento aos clientes em seu aplicativo, você deve definir o complemento para seu aplicativo no Partner Center para que a Loja saiba disso. Em seguida, seu aplicativo pode usar APIs no namespace Windows.Services.Store ou Windows.ApplicationModel.Store para oferecer o complemento para venda ao usuário como uma compra no aplicativo.

Aplicativos UWP podem oferecer os seguintes tipos de complementos.

Tipo de complemento Descrição
Durável Um complemento que persiste durante o tempo de vida especificado no Partner Center.

Por padrão, os complementos duráveis nunca expiram, podendo ser adquiridos somente uma vez. Se você especificar uma duração específica para o complemento, o usuário poderá comprar novamente o complemento depois que ele expirar.
Consumível gerenciado pelo desenvolvedor Um complemento que pode ser comprado, usado e comprado novamente após o consumo. Você é responsável por controlar o saldo de itens do usuário que o complemento representa.

Quando o usuário consome qualquer item associado ao complemento, você é responsável pela manutenção do saldo do usuário e por relatar a compra do complemento como providenciada para a Store depois que o usuário consome todos os itens. O usuário não pode comprar o complemento novamente até que seu aplicativo tenha informado a compra anterior do complemento como providenciada.

Por exemplo, se o seu complemento representar 100 moedas em um jogo e o usuário consumir 10 moedas, seu aplicativo ou o serviço deverá manter o novo saldo restante de 90 moedas para o usuário. Depois que o usuário tiver consumido todas as 100 moedas, seu aplicativo deverá declarar o complemento como providenciado e, em seguida, o usuário poderá comprar o complemento de 100 moedas novamente.
Consumível gerenciado pela Store Um complemento que pode ser comprado, usado e comprado a qualquer momento. A Store mantém o controle do saldo de itens do usuário que o complemento representa.

Quando o usuário consome todos os itens associados ao complemento, você é responsável por relatar esses itens como providenciados para a Store, e esta atualiza o saldo do usuário. O usuário pode adquirir o complemento quantas vezes desejar (não é necessário consumir os itens primeiro). Seu aplicativo pode consultar o saldo atual para o usuário a qualquer momento.

Por exemplo, se o complemento representar uma quantidade inicial de 100 moedas em um jogo e o usuário consumir 50 moedas, o aplicativo relatará para a Store que 50 unidades do complemento foram providenciadas, e a Store atualizará o saldo restante. Se o usuário comprar o complemento novamente para adquirir mais 100 moedas, ele agora terá 150 moedas no total.

Nota Para usar consumíveis gerenciados pela Store, seu aplicativo deve ter como destino o Windows 10 Anniversary Edition (10.0; Build 14393) ou uma versão posterior no Visual Studio e deve usar o namespace Windows.Services.Store em vez do namespace Windows.ApplicationModel.Store .
Subscription Um complemento durável em que o cliente continua a ser cobrado em intervalos recorrentes para continuar usando o complemento. O cliente pode cancelar a assinatura a qualquer momento para evitar cobranças futuras.

Nota Para usar complementos de assinatura, seu aplicativo deve ter como destino a Edição de Aniversário do Windows 10 (10.0; Build 14393) ou uma versão posterior no Visual Studio e deve usar o namespace Windows.Services.Store em vez do namespace Windows.ApplicationModel.Store .

Observação

Outros tipos de complementos, como complementos duráveis com pacotes (também conhecidos como conteúdo baixável ou DLC), estão disponíveis apenas para um conjunto restrito de desenvolvedores e não são abordados nesta documentação.

Compras no aplicativo e avaliações usando o namespace Windows.Services.Store

Esta seção fornece uma visão geral das tarefas e dos conceitos importantes para o namespace Windows.Services.Store. Esse namespace está disponível somente para aplicativos destinados ao Windows 10 Anniversary Edition (10.0; Compilação 14393) ou uma versão posterior no Visual Studio (isso corresponde ao Windows 10, versão 1607). Recomendamos que os aplicativos usem o namespace Windows.Services.Store em vez do namespace Windows.ApplicationModel.Store, se possível. Para obter informações sobre o namespace Windows.ApplicationModel.Store, consulte este artigo.

Nesta seção

Vídeo

Assista ao vídeo a seguir para obter uma visão geral de como implementar compras no aplicativo em seu app usando o namespace Windows.Services.Store.

Introdução à classe StoreContext

O ponto de entrada principal para o namespace Windows.Services.Store é a classe StoreContext. Essa classe fornece métodos que você pode usar para obter informações do aplicativo atual e seus complementos disponíveis, obter informações de licença do aplicativo atual ou seus complementos, comprar um aplicativo ou um complemento para o usuário atual e realizar outras tarefas. Para obter um objeto StoreContext, siga um destes procedimentos:

  • Em um app de usuário único (ou seja, um app executado apenas no contexto do usuário que iniciou o app), use o método GetDefault estático para obter um objeto StoreContext que seja possível usar para acessar dados relacionados à Microsoft Store para o usuário. A maioria dos aplicativos da Plataforma Universal do Windows (UWP) é um aplicativo de usuário único.

    Windows.Services.Store.StoreContext context = StoreContext.GetDefault();
    
  • Em um app multiusuário, use o método GetForUser estático para obter um objeto StoreContext que seja possível usar para acessar dados relacionados à Microsoft Store para um usuário específico que tenha feito logon usando a conta da Microsoft durante o uso do app. O exemplo a seguir obtém um objeto StoreContext para o primeiro usuário disponível.

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

Observação

Os aplicativos da área de trabalho do Windows que usam o Ponte de Desktop devem realizar etapas adicionais para configurar o objeto StoreContext para poder usar esse objeto. Para obter mais informações, consulte esta seção.

Depois que tiver um objeto StoreContext, você poderá começar a chamar métodos desse objeto para obter informações da Store sobre o aplicativo atual e os complementos, recuperar informações de licença para o aplicativo atual e os complementos, comprar um aplicativo ou um complemento para o usuário atual e realizar outras tarefas. Para obter mais informações sobre tarefas comuns que você pode realizar usando esse objeto, consulte os seguintes artigos:

Para obter um aplicativo de exemplo que demonstre como usar StoreContext e outros tipos no namespace Windows.Services.Store, consulte o exemplo da Store.

Implementar compras no aplicativo

Para oferecer uma compra no aplicativo aos clientes em seu aplicativo usando o namespace Windows.Services.Store:

  1. Se seu aplicativo oferecer complementos que os clientes podem comprar, crie envios de complemento para seu aplicativo no Partner Center .

  2. Escreva um código em seu aplicativo para recuperar informações de produto para o aplicativo ou um complemento oferecido pelo aplicativo e determinar se a licença está ativa (ou seja, se o usuário tiver uma licença para usar o aplicativo ou um complemento). Se a licença não estiver ativa, exiba uma interface do usuário que ofereça o aplicativo ou complemento para venda ao usuário como uma compra no aplicativo.

  3. Se o usuário optar por comprar o aplicativo ou o complemento, use o método indicado para comprar o produto:

  4. Teste sua implementação seguindo as diretrizes de teste neste artigo.

Implementar a funcionalidade de avaliação

Para excluir ou limitar recursos em uma versão de avaliação do seu aplicativo usando o namespace Windows.Services.Store:

  1. Configure seu aplicativo como uma avaliação gratuita no Partner Center.

  2. Escreva um código em seu aplicativo para recuperar informações de produto para o aplicativo ou um complemento oferecido pelo aplicativo e determine se a licença associada ao aplicativo é uma licença de avaliação.

  3. Exclua ou limite determinados recursos no aplicativo caso ela seja uma versão de avaliação e habilite os recursos quando o usuário comprar uma licença completa. Para obter mais informações e um exemplo de código, consulte Implementar uma versão de avaliação do aplicativo.

  4. Teste sua implementação seguindo as diretrizes de teste neste artigo.

Testar a compra realizada em aplicativo ou a implementação de avaliação

Se seu app usa APIs no namespace Windows.Services.Store para implementar compras no aplicativo ou a funcionalidade de avaliação, você deve publicar seu aplicativo na Microsoft Store e baixá-lo em seu dispositivo de desenvolvimento para usar sua licença de teste. Siga este processo para testar seu código:

  1. Se seu aplicativo ainda não estiver publicado e disponível na Store, verifique se seu aplicativo atende aos requisitos mínimos do Kit de Certificação de Aplicativos Windows , envie seu aplicativo no Partner Center e verifique se o aplicativo passa no processo de certificação. Você pode configurar seu app para que ele não possa ser descoberto na Store durante os testes. Observe a configuração adequada de pacotes de pré-lançamento. Pacotes de pré-lançamento configurados incorretamente podem não ser capazes de ser baixados.

  2. Em seguida, certifique-se de que você tenha concluído o seguinte:

  3. Com seu projeto aberto no Visual Studio, clique no menu Projeto, aponte para Store e clique em Associar Aplicativo à Store. Conclua as instruções no assistente para associar o projeto de aplicativo ao aplicativo em sua conta do Partner Center que você deseja usar para teste.

    Observação

    Se você não associar seu projeto a um aplicativo na Store, os métodos StoreContext definirão a propriedade ExtendedError dos valores de retorno como o valor de código de erro 0x803F6107. Esse valor indica que a Store desconhece o aplicativo.

  4. Se você não tiver feito isso ainda, instale o aplicativo da Store que você especificou na etapa anterior, execute-o uma vez e, em seguida, feche-o. Isso garante que uma licença válida para o aplicativo seja instalada em seu dispositivo de desenvolvimento.

  5. No Visual Studio, comece a executar ou depurar seu projeto. Seu código deverá recuperar dados do aplicativo e do complemento do aplicativo da Store que você associou ao seu projeto local. Se for solicitada a reinstalação do aplicativo, siga as instruções e execute ou depure o projeto.

    Observação

    Depois de concluir essas etapas, você poderá continuar atualizando o código do aplicativo e, em seguida, depurar o projeto atualizado no computador de desenvolvimento sem enviar novos pacotes de aplicativos para a Store. Você só precisa baixar a versão da Store do aplicativo no computador de desenvolvimento uma vez para obter a licença local que será usada para teste. Você só precisará enviar novos pacotes de aplicativos para a Store depois de concluir o teste e se quiser disponibilizar os recursos relacionados à avaliação ou à compra no aplicativo no aplicativo para os clientes.

Se o seu app usa o namespace Windows.ApplicationModel.Store, você pode usar a classe CurrentAppSimulator em seu app para simular as informações de licença durante o teste antes de enviar seu app para a Store. Para obter mais informações, consulte Introdução às classes CurrentApp e CurrentAppSimulator.

Observação

O namespace Windows.Services.Store não fornece uma classe que seja possível usar para simular informações de licença durante o teste. Se você usar o namespace Windows.Services.Store para implementar compras ou avaliações no aplicativo, deverá publicar seu app na Store e baixá-lo em seu dispositivo de desenvolvimento para usar sua licença de teste como descrito acima.

Recibos para compras no aplicativo

O namespace Windows.Services.Store não fornece uma API que seja possível usar para obter um recibo de transação para compras bem-sucedidas no código do aplicativo. Essa é uma experiência diferente de aplicativos que usam o namespace Windows.ApplicationModel.Store, que pode usar uma API do lado do cliente para recuperar um recibo de transação.

Se você implementar compras no aplicativo usando o namespace Windows.Services.Store e você desejar validar se um determinado cliente comprou um app ou um complemento, você pode usar a consulta para o método de produtos na API REST da coleção da Microsoft Store. Os dados de retorno para esse método confirmam se o cliente especificado tem um direito para um determinado produto e fornecem dados para a transação na qual o usuário adquiriu o produto. A API de coleção da Microsoft Store usa a autenticação do Azure AD para recuperar essas informações.

Como usar a classe StoreContext com o Desktop Bridge

Os aplicativos da área de trabalho que usam o Desktop Bridge podem utilizar a classe StoreContext para implementar compras no aplicativo e avaliações. No entanto, se você tiver um aplicativo da área de trabalho Win32 ou um aplicativo da área de trabalho que tenha um identificador de janela (HWND) associado à estrutura de renderização (como um aplicativo WPF ou SDK do Aplicativo Windows), seu aplicativo deverá configurar o objeto StoreContext para especificar qual janela de aplicativo é a janela do proprietário para caixas de diálogo modais mostradas pelo objeto .

Muitos membros do StoreContext (e membros de outros tipos relacionados que são acessados por meio do objeto StoreContext) exibem uma caixa de diálogo modal para o usuário para operações relacionadas à Store, como comprar um produto. Se um aplicativo de desktop não configura o objeto StoreContext para especificar a janela do proprietário para caixas de diálogo modais, esse objeto retornará dados imprecisos ou erros.

Para configurar um objeto StoreContext em um aplicativo da área de trabalho que use o Desktop Bridge, siga estas etapas.

Para .NET 6 ou posterior

Se o aplicativo for escrito em C# com .NET 6 ou posterior, siga estas etapas.

  1. Verifique se a TargetFramework propriedade no arquivo de projeto está definida como uma versão específica do SDK do Windows para acessar as APIs do Windows Runtime, que fornece acesso ao namespace WinRT.Interop. Por exemplo:

    <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. Obtenha um objeto StoreContext usando o método GetDefault (ou GetForUser se seu aplicativo for um aplicativo de vários usuários), conforme descrito anteriormente neste artigo). Para inicializar a caixa de diálogo com o identificador de janela especificado, use os métodos WinRT.Interop.WindowNative.GetWindowHandle e WinRT.Interop.InitializeWithWindow.Initialize (consulte Recuperar um identificador de janela (HWND) e Exibir objetos de interface do usuário do WinRT que dependem do 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 funcion for IInitializeWithWindow
    WinRT.Interop.InitializeWithWindow.Initialize(context, hwnd); 
    

Para versões anteriores do .NET ou C++

Se o aplicativo for escrito com uma versão anterior do .NET ou no C++, siga estas etapas.

  1. Siga um destes procedimentos para permitir que o aplicativo acesse a interface IInitializeWithWindow:

    • Se o aplicativo for escrito em uma linguagem gerenciada, como C# ou Visual Basic (antes do .NET 6), declare a interface IInitializeWithWindow no código do aplicativo com o atributo ComImport , conforme mostrado no exemplo de C# a seguir. Este exemplo pressupõe que o arquivo de código tenha uma instrução using para o namespace System.Runtime.InteropServices .

      [ComImport]
      [Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1")]
      [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
      public interface IInitializeWithWindow
      {
          void Initialize(IntPtr hwnd);
      }
      
    • Se o aplicativo for escrito em C++, adicione uma referência ao shobjidl.h arquivo de cabeçalho em seu código. Esse arquivo de cabeçalho contém a declaração da interface IInitializeWithWindow.

  2. Obtenha um objeto StoreContext usando o método GetDefault (ou GetForUser caso o aplicativo seja um aplicativo multiusuário) conforme descrito anteriormente neste artigo, e converta esse objeto em um objeto IInitializeWithWindow. Em seguida, chame o método IInitializeWithWindow.Initialize e passe o identificador da janela da qual você deseja ser o proprietário para eventuais caixas de diálogo modais mostradas por métodos StoreContext. O exemplo em C# a seguir mostra como passar o identificador da janela principal do aplicativo para o método. Veja também Recuperar um identificador de janela (HWND) e Exibir objetos da interface do usuário do WinRT que dependem do CoreWindow.

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

Produtos, SKUs e disponibilidades

Cada produto na Store tem pelo menos uma SKU, e cada SKU tem pelo menos uma disponibilidade. Esses conceitos são abstraídos da maioria dos desenvolvedores no Partner Center, e a maioria dos desenvolvedores nunca definirá SKUs ou disponibilidades para seus aplicativos ou complementos. No entanto, como o objeto de modelo para produtos da Store no namespace Windows.Services.Store inclui disponibilidades e SKUs, um entendimento básico sobre esses conceitos pode ser útil para alguns cenários.

Objeto Descrição
Produto Um produto refere-se a qualquer tipo de produto que esteja disponível na Store, incluindo um app ou um complemento.

Cada produto na Store tem um objeto StoreProduct correspondente. Essa classe fornece propriedades que você pode usar para acessar dados, como a ID da Store do produto, as imagens e os vídeos para a listagem da Store e informações de preços. Também fornece métodos que você pode usar para comprar o produto.
SKU Um SKU é uma versão específica de um produto com sua própria descrição, preço e outros detalhes exclusivos do produto. Cada aplicativo ou complemento tem uma SKU padrão. O único momento em que a maioria dos desenvolvedores terá várias SKUs para um aplicativo é se publicarem uma versão completa do aplicativo e uma versão de avaliação (no catálogo da Store, cada uma dessas versões é uma SKU diferente do mesmo aplicativo).

Alguns fornecedores podem definir suas próprias SKUs. Por exemplo, um grande fornecedor de jogos pode lançar um jogo com uma SKU que mostre sangue verde em mercados que não permitem sangue vermelho e outra SKU que mostre sangue vermelho nos demais mercados. Como alternativa, um fornecedor que vende conteúdo em vídeo digital pode publicar duas SKUs para um vídeo, uma SKU para a versão em alta definição e outra SKU para a versão em definição padrão.

Cada SKU na Store tem um objeto StoreSku correspondente. Cada StoreProduct tem uma propriedade Skus que você pode usar para acessar as SKUs para o produto.
Disponibilidade Uma disponibilidade é uma versão específica de um SKU com suas próprias informações de preço exclusivas. Cada SKU tem uma disponibilidade padrão. Alguns fornecedores podem definir suas próprias disponibilidade para apresentar opções de preço diferentes para determinada SKU.

Cada disponibilidade na Store tem um objeto StoreAvailability correspondente. Cada StoreSku tem uma propriedade Availabilities que você pode usar para acessar as disponibilidades para a SKU. Para a maioria dos desenvolvedores, cada SKU tem uma única disponibilidade padrão.

IDs da Store

Cada app, complemento ou outro produto na Store tenha uma ID da Store associada (que às vezes também é chamada de ID da Store do produto). Muitas APIs exigem a ID da LOja para executar uma operação em um app ou complemento.

A ID da Store de qualquer produto na Store é uma cadeia de 12 caracteres alfanuméricos, como 9NBLGGH4R315. Há várias maneiras diferentes de se obter a ID da Store para um produto na Store:

  • Para um aplicativo, você pode obter a ID da Loja na página Identidade do aplicativo no Partner Center.
  • Para um complemento, você pode obter a ID da Loja na página de visão geral do complemento no Partner Center.
  • Para qualquer produto, você também pode obter a ID da Store programaticamente usando a propriedade StoreId do objeto StoreProduct que representa o produto.

Para produtos com SKUs e disponibilidades, as SKUs e as disponibilidades também têm suas próprias IDs da Store com formatos diferentes.

Objeto Formato da ID da Store
SKU A ID da Store para uma SKU tem o formato <product Store ID>/xxxx, onde xxxx é uma cadeia de 4 caracteres alfanuméricos que identifica uma SKU do produto. Por exemplo, 9NBLGGH4R315/000N. Essa ID é retornada pela propriedade StoreId de um objeto StoreSku e, às vezes, é chamada de ID do Repositório de SKU.
Disponibilidade A ID da Store para uma disponibilidade tem o formato <product Store ID>/xxxx/yyyyyyyyyyyy, onde xxxx é uma cadeia de 4 caracteres alfanuméricos que identifica uma SKU do produto e yyyyyyyyyyyy é uma cadeia de 12 caracteres alfanuméricos que identifica uma disponibilidade para a SKU. Por exemplo, 9NBLGGH4R315/000N/4KW6QZD2VN6X. Essa ID é retornada pela propriedade StoreId de um objeto StoreAvailability e, às vezes, é chamada de ID da Loja de disponibilidade.

Como usar IDs do produto (product IDs) para complementos no seu código

Se você quiser disponibilizar um complemento para seus clientes no contexto do seu aplicativo, deverá inserir uma ID de produto exclusiva para o complemento ao criar seu envio de complemento no Partner Center. Você pode usar essa ID do produto (product ID) para fazer referência ao complemento em seu código, embora os cenários específicos nos quais você poderá usar a ID do produto dependerão do namespace usado para compras no aplicativo do seu app.

Observação

A ID do produto que você insere no Partner Center para um complemento é diferente da ID da Loja do complemento. A ID da Loja é gerada pelo Partner Center.

Apps que usam o namespace Windows.Services.Store

Se seu app usar o namespace Windows.Services.Store, você poderá usar a ID do produto (product ID) para identificar com facilidade o StoreProduct que representa o complemento ou a StoreLicense que representa a licença do complemento. A ID do produto (product ID) é exposta pelas propriedades StoreProduct.InAppOfferToken e StoreLicense.InAppOfferToken.

Observação

Embora a ID do produto (product ID) seja uma maneira útil de identificar um complemento em seu código, a maioria das operações no namespace Windows.Services.Store usa a ID da Store de um complemento em vez da ID do produto. Por exemplo, para recuperar programaticamente um ou mais complementos conhecidos para um app, passe as IDs da Store (em vez das IDs do produto (product IDs) dos complementos para o método GetStoreProductsAsync. Da mesma forma, para reportar um complemento consumível como providenciado, passe a ID da Store do complemento (em vez da ID do produto (productID)) para o método ReportConsumableFulfillmentAsync.

Apps que usam o namespace Windows.ApplicationModel.Store

Se o aplicativo usar o namespace Windows.ApplicationModel.Store , você precisará usar a ID do produto que atribui a um complemento no Partner Center para a maioria das operações. Por exemplo: