Compras no aplicativo e avaliações

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

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

  • Funcionalidade de avaliação Se você configurar seu aplicativo como uma avaliação gratuita no Partner Center, poderá atrair os clientes para comprar a versão completa do 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 que um cliente compre o aplicativo.

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

Escolher o namespace a ser usado

Há dois namespaces diferentes que você pode usar para adicionar as compras no aplicativo e a funcionalidade de avaliação aos seus aplicativos UWP, dependendo da versão do Windows 10 ou do Windows 11 à qual os aplicativos se destinam. Embora as APIs desses namespaces atendam aos mesmos objetivos, elas foram projetadas de maneira 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 desse namespace para implementar compras no aplicativo e avaliações. Recomendamos que você use os membros desse namespace se o projeto de aplicativo for direcionado ao Windows 10 Anniversary Edition (10.0, build 14393) ou a uma versão posterior no Visual Studio. Esse namespace dá suporte aos tipos de complementos mais recentes, como os complementos consumíveis gerenciados pela Microsoft Store, e foi projetado para ser compatível com os futuros tipos de produtos e recursos com suporte no Partner Center e na Microsoft Store. Para obter mais informações sobre esse namespace, confira a seção Compras no aplicativo e avaliações usando o namespace Windows.Services.Store deste 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 no aplicativo e avaliações nesse namespace. Para obter informações sobre o namespace Windows.ApplicationModel.Store, confira Compras no aplicativo e avaliações usando o namespace Windows.ApplicationModel.Store.

Importante

O namespace Windows.ApplicationModel.Store deixou de ser atualizado com novos recursos, por isso, recomendamos que você use o namespace Windows.Services.Store, se possível, para seu aplicativo. Não há suporte ao namespace Windows.ApplicationModel.Store em aplicativos da área de trabalho do Windows que usam a 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 integrado ao Xbox Live).

Conceitos básicos

Em geral, todo item oferecido na Microsoft Store é chamado de produto. A maioria dos desenvolvedores só trabalha com os seguintes tipos de produtos: aplicativos e complementos.

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

Para oferecer um complemento aos clientes do seu aplicativo, defina o complemento do aplicativo no Partner Center para que a Microsoft Store o reconheça. Em seguida, o aplicativo poderá 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.

Os aplicativos UWP podem oferecer os tipos de complementos a seguir.

Tipo de complemento Descrição
Durável Um complemento que é mantido durante o tempo de vida que você especifica no Partner Center.

Por padrão, os complementos duráveis nunca expiram e, nesse caso, só podem ser comprados uma vez. Se você especificar uma duração específica para o complemento, o usuário poderá comprá-lo de novo depois que ele expirar.
Consumível gerenciado pelo desenvolvedor Um complemento que pode ser comprado, usado e, em seguida, comprado novamente depois de consumido. Você é responsável por acompanhar o saldo de itens do usuário que o complemento representa.

Quando o usuário consome qualquer item associado ao complemento, você é responsável por manter o saldo do usuário e por relatar a compra do complemento como atendida à Microsoft Store depois que o usuário tiver consumido todos os itens. O usuário só poderá comprar o complemento novamente quando o aplicativo relatar a compra anterior do complemento como atendida.

Por exemplo, se o complemento representa 100 moedas em um jogo e o usuário consome 10 moedas, o aplicativo ou o serviço precisa manter o novo saldo restante de 90 moedas referente ao usuário. Depois que o usuário consumir todas as 100 moedas, o aplicativo precisará relatar o complemento como atendido e, em seguida, o usuário poderá comprar o complemento de 100 moedas novamente.
Consumível gerenciado pela Microsoft Store Um complemento que pode ser comprado, usado e comprado novamente a qualquer momento. A Microsoft Store acompanha o saldo de itens do usuário que o complemento representa.

Quando o usuário consome qualquer item associado ao complemento, você é responsável por relatar esses itens como atendidos à Microsoft Store, e a Microsoft Store atualiza o saldo do usuário. O usuário poderá comprar o complemento quantas vezes quiser (ele não precisa consumir os itens primeiro). O aplicativo pode consultar o saldo atual do 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 informará à Microsoft Store que 50 unidades do complemento foram atendidas e a Microsoft Store atualizará o saldo restante. Se, em seguida, o usuário comprar o complemento de novo para adquirir mais 100 moedas, ele passará a ter 150 moedas no total.

Observação Para usar consumíveis gerenciados pela Microsoft Store, seu aplicativo precisa ter como destino o Windows 10 Anniversary Edition (10.0, build 14393) ou uma versão posterior no Visual Studio e usar o namespace Windows.Services.Store em vez do namespace Windows.ApplicationModel.Store.
Subscription Um complemento durável é quando o cliente continua recebendo cobranças em intervalos recorrentes para continuar usando o complemento. O cliente pode cancelar a assinatura a qualquer momento para evitar cobranças adicionais.

Observação Para usar complementos de assinatura, seu aplicativo precisa ter como destino o Windows 10 Anniversary Edition (10.0, build 14393) ou uma versão posterior no Visual Studio e 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 para download 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 apresenta uma visão geral de tarefas e conceitos importantes sobre o namespace Windows.Services.Store. Esse namespace só está disponível para aplicativos direcionados ao Windows 10 Anniversary Edition (10.0, build 14393) ou a uma versão posterior no Visual Studio (correspondente 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, confira este artigo.

Nesta seção

Introdução à classe StoreContext

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

  • 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 estático GetDefault para obter um objeto StoreContext que você poderá usar para acessar dados relacionados à Microsoft Store sobre o usuário. A maioria dos aplicativos UWP (Plataforma Universal do Windows) são aplicativos de usuário único.

    Windows.Services.Store.StoreContext context = StoreContext.GetDefault();
    
  • Em um aplicativo multiusuário, use o método estático GetForUser para obter um objeto StoreContext que você poderá usar para acessar dados relacionados à Microsoft Store sobre um usuário específico que está conectado com a conta Microsoft enquanto usa o aplicativo. O exemplo a seguir obtém um objeto StoreContext sobre 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 a Ponte de Desktop precisam executar etapas adicionais para configurar o objeto StoreContext para usar esse objeto. Para saber mais, confira esta seção.

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

Para ver um aplicativo de exemplo que demonstra como usar StoreContext e outros tipos no namespace Windows.Services.Store, confira a Amostra da Microsoft Store.

Implementar as compras no aplicativo

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

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

  2. Escreva um código no aplicativo para recuperar informações de produto sobre o aplicativo ou um complemento oferecido pelo aplicativo e determine se a licença está ativa (ou seja, se o usuário tem uma licença para usar o aplicativo ou o complemento). Se a licença não estiver ativa, exiba uma interface do usuário que ofereça o aplicativo ou o 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 apropriado para a compra do produto:

  4. Teste sua implementação seguindo as diretrizes de teste deste 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 no aplicativo para recuperar informações de produto sobre 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 se ele 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, confira Implementar uma versão de avaliação do seu aplicativo.

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

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

Se o aplicativo usa APIs no namespace Windows.Services.Store para implementar a compra no aplicativo ou a funcionalidade de avaliação, publique o aplicativo na Microsoft Store e baixe-o no dispositivo de desenvolvimento para usar a licença dele para teste. Siga este processo para testar o código:

  1. Se o aplicativo ainda não foi publicado e ainda não estiver disponível na Microsoft Store, verifique se ele atende aos requisitos mínimos do Kit de Certificação de Aplicativos Windows, envie o aplicativo no Partner Center e verifique se ele foi aprovado no processo de certificação. Você pode configurar seu aplicativo para que ele não seja detectável na Microsoft Store durante os testes. Observe a configuração correta dos pacotes de pré-lançamento. Talvez não seja possível baixar pacotes de pré-lançamento configurados incorretamente.

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

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

    Observação

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

  4. Caso ainda não tenha feito isso, por meio da Microsoft Store, instale o aplicativo especificado na etapa anterior, execute-o uma vez e feche-o. Isso garante que uma licença válida para o aplicativo seja instalada no dispositivo de desenvolvimento.

  5. No Visual Studio, comece a executar ou depurar o projeto. O código deverá recuperar dados de aplicativo e de complemento do aplicativo da Microsoft Store que você associou ao projeto local. Caso precise reinstalar o aplicativo, siga as instruções e execute ou depure o projeto.

    Observação

    Depois de concluir essas etapas, continue atualizando o código do aplicativo e depure o projeto atualizado no computador de desenvolvimento sem enviar novos pacotes do aplicativo à Microsoft Store. Você só precisa baixar a versão da Microsoft 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 do aplicativo à Microsoft Store depois de concluir o teste e desejar disponibilizar a compra no aplicativo ou os recursos relacionados à avaliação no aplicativo aos clientes.

Se o aplicativo usa o namespace Windows.ApplicationModel.Store, use a classe CurrentAppSimulator no aplicativo para simular as informações de licença durante o teste antes de enviá-lo à Microsoft Store. Para obter mais informações, confira 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 as informações de licença durante o teste. Se você usar o namespace Windows.Services.Store para implementar compras no aplicativo ou avaliações, publique o aplicativo na Microsoft Store e baixe-o no dispositivo de desenvolvimento para usar a licença dele para teste, conforme descrito acima.

Recibos das compras no aplicativo

O namespace Windows.Services.Store não fornece uma API que você possa usar para obter um recibo de transação referente às compras feitas 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 um recibo de transação.

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

Os aplicativos da área de trabalho que usam a Ponte de Desktop podem usar a classe StoreContext para implementar compras no aplicativo e avaliações. No entanto, se você tiver um aplicativo da área de trabalho do 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 do Windows), seu aplicativo precisará configurar o objeto StoreContext para especificar qual janela de aplicativo é a janela do proprietário das caixas de diálogo modais mostradas pelo objeto.

Muitos membros de 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 para operações relacionadas à Microsoft Store, como a compra de 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 de Desktop, siga estas etapas.

Para o .NET 6 ou posterior

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

  1. Verifique se a propriedade TargetFramework 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 o aplicativo for um aplicativo multiusuário), conforme já descrito 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 (confira 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 do C++

Se o aplicativo for escrito com uma versão anterior do .NET ou em 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 o C# ou o Visual Basic (antes do .NET 6), declare a interface IInitializeWithWindow no código do aplicativo com o atributo ComImport, conforme mostrado no exemplo em C# a seguir. Esse 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 arquivo de cabeçalho shobjidl.h no 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 já descrito neste artigo, e converta esse objeto em um objeto IInitializeWithWindow. Em seguida, chame o método IInitializeWithWindow.Initialize e transmita o identificador da janela que você deseja que seja o proprietário de todas as caixas de diálogo modais mostradas pelos métodos StoreContext. O exemplo de C# a seguir mostra como transmitir 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 disponibilidade

Cada produto da Microsoft Store tem, pelo menos, um SKU, e cada SKU tem, no mínimo, uma disponibilidade. Esses conceitos são eliminados da maioria dos desenvolvedores no Partner Center, e a maior parte dos desenvolvedores nunca definirá os SKUs ou a disponibilidade para os respectivos aplicativos ou complementos. No entanto, como o modelo de objeto para produtos da Microsoft Store no namespace Windows.Services.Store inclui os SKUs e a disponibilidade, uma compreensão básica desses conceitos pode ser útil em alguns cenários.

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

Cada produto da Microsoft Store tem um objeto StoreProduct correspondente. Essa classe fornece propriedades que você pode usar para acessar dados como a ID da Microsoft Store do produto, as imagens e os vídeos da listagem da Microsoft Store, bem como 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 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 do aplicativo e uma versão de avaliação (no catálogo da Microsoft Store, cada uma dessas versões é um SKU diferente do mesmo aplicativo).

Alguns editores têm a capacidade de definir SKUs próprios. Por exemplo, um editor de jogos de grande porte pode lançar um jogo com um SKU que mostra sangue verde em mercados que não permitem sangue vermelho e um 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 da Microsoft Store tem um objeto StoreSku correspondente. Cada StoreProduct tem uma propriedade Skus que você pode usar para acessar os SKUs do produto.
Disponibilidade Uma disponibilidade é uma versão específica de um SKU com as respectivas informações de preço. Cada SKU tem uma disponibilidade padrão. Alguns editores têm a capacidade de definir uma disponibilidade própria para apresentar diferentes opções de preço para determinado SKU.

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

IDs da Microsoft Store

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

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

  • No caso de um aplicativo, você pode obter a ID da Microsoft Store na página Identidade do aplicativo no Partner Center.
  • No caso de um complemento, você pode obter a ID da Microsoft Store na página de visão geral do complemento no Partner Center.
  • No caso de qualquer produto, obtenha também a ID da Microsoft Store por meio de programação usando a propriedade StoreId do objeto StoreProduct que representa o produto.

Quanto aos produtos com SKUs e disponibilidade, os SKUs e disponibilidade também têm as respectivas IDs da Microsoft Store com diferentes formatos.

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

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

Caso deseje disponibilizar um complemento aos clientes no contexto do aplicativo, insira uma ID do produto (product ID) exclusiva para o complemento ao criar seu envio de complemento no Partner Center. Você pode usar essa ID do produto (product ID) para referenciar o complemento no código, embora os cenários específicos nos quais você possa usá-la dependam do namespace usado para as compras no aplicativo no seu aplicativo.

Observação

A ID do produto (product ID) que você insere no Partner Center para um complemento é diferente da ID da Microsoft Store do complemento. A ID da Microsoft Store é gerada pelo Partner Center.

Aplicativos que usam o namespace Windows.Services.Store

Se o aplicativo usa o namespace Windows.Services.Store, você pode 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 forma útil de identificar um complemento no código, a maioria das operações no namespace Windows.Services.Store usa a ID da Microsoft Store de um complemento em vez da ID do produto (product ID). Por exemplo, para recuperar por meio de programação um ou mais complementos conhecidos de um aplicativo, transmita as IDs da Microsoft Store, em vez das IDs do produto (product IDs), dos complementos para o método GetStoreProductsAsync. Da mesma forma, para relatar um complemento consumível como atendido, transmita a ID da Microsoft Store do complemento, em vez da ID do produto (product ID), 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 (product ID) atribuída a um complemento no Partner Center para a maioria das operações. Por exemplo: