Compartilhar via


Compras e avaliações no aplicativo

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

  • compras no aplicativo Se o aplicativo é gratuito ou não, você pode vender conteúdo ou nova funcionalidade 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 para 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 banners ou marcas d'água, que são mostrados somente durante o período de avaliação, antes que um cliente compre seu aplicativo.

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

Escolher 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 seus aplicativos são direcionados. Embora as APIs nesses namespaces atendam às mesmas metas, elas são projetadas de forma bastante 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 seu projeto de aplicativo for direcionado Windows 10 Anniversary Edition (10.0; Build 14393) ou uma versão posterior no Visual Studio. Esse namespace dá suporte aos tipos de complemento mais recentes, como complementos consumíveis gerenciados pela Loja, e foi projetado para ser compatível com tipos futuros de produtos e recursos compatíveis com o Partner Center e a Store. Para mais informações sobre esse namespace, consulte a seção "Compras no aplicativo e testes usando o namespace Windows.Services.Store" neste artigo.

  • Windows.ApplicationModel.Store Todas as versões do Windows 10 e do 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 períodos de avaliação usando o namespace Windows.ApplicationModel.Store.

Importante

O namespace Windows.ApplicationModel.Store não está mais sendo atualizado com novos recursos e recomendamos que você use o namespace Windows.Services.Store, se possível, para seu aplicativo. Não há suporte para o namespace Windows.ApplicationModel.Store em aplicativos da área de trabalho do Windows que usam o Desktop Bridge ou em aplicativos ou jogos que usam um sandbox de desenvolvimento no Partner Center (por exemplo, isso ocorre em qualquer jogo que se integre ao Xbox Live).

Conceitos básicos

Todos os itens oferecidos na Loja são geralmente chamados de produto . A maioria dos desenvolvedores só trabalha com os seguintes tipos de produtos: aplicativos e complementos.

Um complemento é um produto ou recurso que você disponibiliza para seus clientes no contexto do seu aplicativo: por exemplo, moeda a ser usada em um aplicativo ou jogo, novos mapas ou armas para um jogo, a capacidade de usar seu aplicativo sem anúncios ou conteúdo digital, como músicas ou vídeos para aplicativos que têm a capacidade de oferecer esse tipo de conteúdo. Cada aplicativo e complemento tem uma licença associada que indica se o usuário tem o direito de usar o aplicativo ou complemento. Se o usuário tiver o direito de usar o aplicativo ou complemento como uma avaliação, a licença também fornecerá 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 tenha conhecimento dele. Em seguida, seu aplicativo pode usar APIs no namespace Windows.Services.Store ou Windows.ApplicationModel.Store para oferecer o complemento à venda para o usuário como uma compra no aplicativo.

Os 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 que você especificar no Partner Center.

Por padrão, os complementos duráveis nunca expiram, nesse caso, eles só podem ser comprados uma vez. Se você especificar uma duração específica para o complemento, o usuário poderá recomprar o complemento depois que ele expirar.
Consumível gerenciado pelo desenvolvedor Um complemento que pode ser comprado, usado e comprado novamente depois que ele é consumido. Você é responsável por acompanhar o 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 manter o saldo do usuário e relatar a compra do complemento conforme atendido na Loja depois que o usuário tiver consumido todos os itens. O usuário não pode comprar o complemento novamente até que seu aplicativo tenha relatado a compra do complemento anterior conforme atendido.

Por exemplo, se o complemento representar 100 moedas em um jogo e o usuário consumir 10 moedas, seu aplicativo ou 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á relatar o complemento conforme atendido e, em seguida, o usuário poderá comprar o complemento de 100 moedas novamente.
Consumível gerenciado pela loja Um complemento que pode ser comprado, usado e comprado novamente a qualquer momento. A Loja 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 conforme atendido na Loja e a Loja atualiza o saldo do usuário. O usuário pode comprar o complemento quantas vezes quiser (ele não precisa 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, seu aplicativo informará à Store que 50 unidades do complemento foram atendidas e a Loja atualizará o saldo restante. Se o usuário então recomprar seu add-on para adquirir mais 100 moedas, ele agora terá 150 moedas no total.

Observação Para usar consumíveis gerenciados pela Loja, seu aplicativo deve ter como destino 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.
Subscrição Um complemento durável onde o cliente continua a ser cobrado em intervalos regulares para continuar usando o complemento. O cliente pode cancelar a assinatura a qualquer momento para evitar encargos adicionais.

Observação Para usar complementos de assinatura, seu aplicativo deve ter como destino 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.

Observação

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

Compras no aplicativo e versões de teste usando o namespace Windows.Services.Store

Esta seção fornece uma visão geral de tarefas e conceitos importantes para o namespace Windows.Services.Store. Esse namespace está disponível apenas para aplicativos destinados Windows 10 Anniversary Edition (10.0; Build 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

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 para o aplicativo atual e seus complementos disponíveis, obter informações de licença para o aplicativo atual ou seus complementos, comprar um aplicativo ou complemento para o usuário atual e executar outras tarefas. Para obter um objeto StoreContext, faça um dos seguintes:

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

    Windows.Services.Store.StoreContext context = StoreContext.GetDefault();
    
  • Em um aplicativo multiusuário, use o método GetForUser estático para obter um objeto StoreContext que você pode usar para acessar dados relacionados à Microsoft Store para um usuário específico que está conectado com sua conta Microsoft ao usar o aplicativo. 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 Desktop Bridge devem executar etapas adicionais para configurar o objeto StoreContext antes que eles possam usar esse objeto. Para obter mais informações, consulte esta seção.

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

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

Implementar compras no aplicativo

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

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

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

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

  4. Teste sua implementação seguindo as diretrizes de teste de 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. Configurar seu aplicativo como uma avaliação gratuita no Partner Center.

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

  3. Exclua ou limite determinados recursos em seu aplicativo se for uma 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 de neste artigo.

Teste sua implementação de compra no aplicativo ou avaliação

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

  1. Se seu aplicativo ainda não estiver publicado e disponível na Loja, verifique se seu aplicativo atende aos requisitos mínimos de do Kit de Certificação de Aplicativos do Windows, envie seu aplicativo no Partner Center e verifique se seu aplicativo passa no processo de certificação. Você pode configurar seu aplicativo para que ele não seja visível na loja enquanto você o testa. Por favor, observe a configuração adequada dos voos do pacote . Pacotes de voos configurados incorretamente podem não ser baixados.

  2. Em seguida, verifique se você concluiu o seguinte:

  3. Com o projeto aberto no Visual Studio, clique no menu Project, aponte para Storee clique em Associar Aplicativo à Loja. 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 Loja, os métodos StoreContext definirão a propriedade ExtendedError de seus valores retornados para o valor do código de erro 0x803F6107. Esse valor indica que a Loja não tem nenhum conhecimento sobre o aplicativo.

  4. Se você ainda não fez isso, instale o aplicativo da Loja especificado na etapa anterior, execute o aplicativo uma vez e feche esse aplicativo. Isso garante que uma licença válida para o aplicativo esteja instalada em seu dispositivo de desenvolvimento.

  5. Execute ou depure seu projeto no Visual Studio. Seu código deve recuperar dados de aplicativo e complemento do aplicativo da Loja que você associou ao seu projeto local. Se for solicitado que você reinstale o aplicativo, siga as instruções e execute ou depure seu projeto.

    Observação

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

Se o aplicativo usar o namespace Windows.ApplicationModel.Store, você poderá usar a classe CurrentAppSimulator em seu aplicativo para simular informações de licença durante o teste antes de enviar seu aplicativo para a Loja. 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 você pode 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 aplicativo na Loja e baixar o aplicativo em seu dispositivo de desenvolvimento para usar sua licença para teste, conforme descrito acima.

Recibos de compras no aplicativo

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

Se você implementar compras no aplicativo usando o namespace Windows.Services.Store e quiser validar se um determinado cliente comprou um aplicativo ou complemento, poderá usar a consulta para o método de produtos na API REST da coleção Microsoft Store. Os dados de retorno desse método confirmam se o cliente especificado tem direito a um determinado produto e fornece 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.

Usando a classe StoreContext com o Desktop Bridge

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

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

Para configurar um objeto StoreContext em um aplicativo da área de trabalho que usa a Ponte da Área de Trabalho, 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 propriedade TargetFramework no arquivo de projeto está definida para uma versão específica do SDK do Windows para o acesso às APIs do Windows Runtime, que garante 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 de aplicativo multiusuário) 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 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 function for IInitializeWithWindow
    WinRT.Interop.InitializeWithWindow.Initialize(context, hwnd); 
    

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

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

  1. Siga um destes procedimentos para permitir que seu 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 C# a seguir. Este exemplo pressupõe que seu arquivo de código tenha uma instrução usando 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 arquivo de cabeçalho shobjidl.h 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 se seu aplicativo for um de 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 que você deseja que seja responsável por quaisquer caixas de diálogo modais mostradas pelos métodos StoreContext. O exemplo de C# a seguir mostra como passar o identificador da janela principal do aplicativo para o método. Consulte também Recuperar um identificador de janela (HWND) e Exibir objetos de 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 Loja 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 modelo de objeto para produtos da Store no namespace Windows.Services.Store inclui SKUs e disponibilidades, uma compreensão básica desses conceitos pode ser útil para alguns cenários.

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

Cada produto na loja tem um objeto StoreProduct correspondente. Essa classe fornece propriedades que você pode usar para acessar dados como a ID da Loja do produto, as imagens e vídeos para a listagem da Loja e informações de preços. Ele também fornece métodos que você pode usar para comprar o produto.
Código de Referência de Estoque (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 um SKU padrão. A única vez que a maioria dos desenvolvedores terá vários SKUs para um aplicativo é se eles publicarem uma versão completa de seu 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 editores têm a capacidade de definir suas próprias SKUs. Por exemplo, um grande editor de jogos pode lançar um jogo com uma SKU que mostra sangue verde em mercados que não permitem sangue vermelho e uma SKU diferente que mostra sangue vermelho em todos os outros mercados. Como alternativa, um editor que vende conteúdo de vídeo digital pode publicar dois SKUs para um vídeo, um SKU para a versão de alta definição e um SKU diferente para a versão de definição padrão.

Cada SKU na Loja tem um objeto StoreSku correspondente. Cada StoreProduct tem uma propriedade Skus que você pode usar para acessar as SKUs do produto.
Disponibilidade Uma de disponibilidade é uma versão específica de um SKU com suas próprias informações de preços exclusivas. Cada SKU tem uma disponibilidade padrão. Alguns editores têm a capacidade de definir suas próprias disponibilidades para introduzir diferentes opções de preço para uma determinada SKU.

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

IDs da loja

Cada aplicativo, complemento ou outro produto na Loja tem um ID da Loja associado (também é chamado de ID de produto da Loja). Muitas APIs exigem a ID da Loja para executar uma operação em um aplicativo ou complemento.

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

  • Para um aplicativo, você pode obter a ID da loja na página de 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 Loja programaticamente usando a propriedade StoreId do objeto StoreProduct que representa o produto.

Para produtos com SKUs e disponibilidades, essas SKUs e disponibilidades também têm seus próprios IDs da loja com formatos diferentes.

Objeto Formato de Identificação da Loja
Código de Referência de Estoque (SKU) A ID da Loja para uma SKU tem o formato <product Store ID>/xxxx, em que xxxx é uma cadeia de caracteres alfanumérica de 4 caracteres que identifica um SKU para o produto. Por exemplo, 9NBLGGH4R315/000N. Este ID é retornado pela propriedade StoreId de um objeto StoreSku e, às vezes, é chamado de ID de Armazenamento de SKU .
Disponibilidade O ID da Loja para uma disponibilidade tem o formato <product Store ID>/xxxx/yyyyyyyyyyyy, em que xxxx é uma string alfanumérica de 4 caracteres que identifica um SKU do produto e yyyyyyyyyyyy é uma string alfanumérica de 12 caracteres que identifica uma disponibilidade para um SKU. Por exemplo, 9NBLGGH4R315/000N/4KW6QZD2VN6X. Esse ID é retornado pela propriedade StoreId de um objeto StoreAvailability, e às vezes é chamado de ID de Disponibilidade da Loja.

Como usar IDs de produto para complementos em seu código

Se você quiser disponibilizar um complemento para seus clientes no contexto do seu aplicativo, deverá inserir uma ID exclusiva do produto para o complemento quando você criar a submissão de complemento no Partner Center. Você pode usar essa ID do produto para se referir ao complemento em seu código, embora os cenários específicos nos quais você pode usar a ID do produto dependam de qual namespace você usa para compras no aplicativo em seu aplicativo.

Observação

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

Aplicativos que usam o namespace Windows.Services.Store

Se o aplicativo usar o namespace Windows.Services.Store, você poderá usar a ID do produto para identificar facilmente o StoreProduct que representa o complemento ou o StoreLicense que representa a licença do complemento. A ID do produto é exposta pelas propriedades StoreProduct.InAppOfferToken e StoreLicense.InAppOfferToken.

Observação

Embora a ID do produto seja uma maneira útil de identificar um complemento em seu código, a maioria das operações no namespace Windows.Services.Store usam 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 aplicativo, passe as IDs da Loja (em vez das IDs do produto) dos complementos para o método GetStoreProductsAsync. Da mesma forma, para relatar o cumprimento de um complemento consumível, passe a ID da Loja do complemento (em vez da ID do produto) para o método ReportConsumableFulfillmentAsync.

Aplicativos 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: