Habilitar compras de produtos no aplicativo
Independentemente de seu aplicativo ser gratuito ou não, você pode vender conteúdo, outros aplicativos ou novas funcionalidades do aplicativo (como desbloquear o próximo nível de um jogo) diretamente no aplicativo. Aqui, mostramos como habilitar esses produtos em seu aplicativo.
Importante
Este artigo demonstra como usar membros do namespace Windows.ApplicationModel.Store para habilitar compras de produtos no aplicativo. Esse namespace não está mais sendo atualizado com novos recursos e recomendamos que você use o namespace Windows.Services.Store . O namespace Windows.Services.Store dá suporte aos tipos de complemento mais recentes, como complementos consumíveis gerenciados pela Loja e assinaturas, e foi projetado para ser compatível com tipos futuros de produtos e recursos compatíveis com o Partner Center e a Loja. O namespace Windows.Services.Store foi introduzido no Windows 10, versão 1607 e só pode ser usado em projetos direcionados ao Windows 10 Anniversary Edition (10.0; Build 14393) ou uma versão posterior no Visual Studio. Para obter mais informações sobre como habilitar compras de produtos no aplicativo usando o namespace Windows.Services.Store , consulte este artigo.
Observação
Os produtos no aplicativo não podem ser oferecidos a partir de uma versão de avaliação de um aplicativo. Os clientes que usam uma versão de avaliação do seu aplicativo só podem comprar um produto no aplicativo se comprarem uma versão completa do seu aplicativo.
Pré-requisitos
- Um aplicativo do Windows no qual adicionar recursos para os clientes comprarem.
- Ao codificar e testar novos produtos no aplicativo pela primeira vez, você deve usar o objeto CurrentAppSimulator em vez do objeto CurrentApp . Dessa forma, você pode verificar sua lógica de licença usando chamadas simuladas para o servidor de licença em vez de chamar o servidor ativo. Para fazer isso, você precisa personalizar o arquivo chamado WindowsStoreProxy.xml em %userprofile%\AppData\local\packages\<package name>\LocalState\Microsoft\Windows Store\ApiData. O simulador do Microsoft Visual Studio cria esse arquivo quando você executa seu aplicativo pela primeira vez, ou você também pode carregar um arquivo personalizado em tempo de execução. Para obter mais informações, consulte Usando o arquivo WindowsStoreProxy.xml com CurrentAppSimulator.
- Este tópico também faz referência a exemplos de código fornecidos no exemplo da Loja. Este exemplo é uma ótima maneira de obter experiência prática com as diferentes opções de monetização fornecidas para aplicativos da Plataforma Universal do Windows (UWP).
Etapa 1: Inicializar as informações de licença do seu aplicativo
Quando seu aplicativo estiver inicializando, obtenha o objeto LicenseInformation para seu aplicativo inicializando o CurrentApp ou CurrentAppSimulator para habilitar compras de um produto no aplicativo.
void InitializeApp()
{
// Some app initialization code...
// Initialize the license info for use in the app that is uploaded to the Store.
// Uncomment the following line in the release version of your app.
// licenseInformation = CurrentApp.LicenseInformation;
// Initialize the license info for testing.
// Comment the following line in the release version of your app.
licenseInformation = CurrentAppSimulator.LicenseInformation;
// Other app initialization code...
}
Etapa 2: adicionar as ofertas no aplicativo ao seu aplicativo
Para cada recurso que você deseja disponibilizar por meio de um produto no aplicativo, crie uma oferta e adicione-a ao seu aplicativo.
Importante
Você deve adicionar todos os produtos no aplicativo que deseja apresentar aos seus clientes ao seu aplicativo antes de enviá-lo para a Loja. Se você quiser adicionar novos produtos no aplicativo posteriormente, atualize seu aplicativo e reenvie uma nova versão.
Criar um token de oferta no aplicativo
Você identifica cada produto no aplicativo em seu aplicativo por um token. Esse token é uma cadeia de caracteres que você define e usa em seu aplicativo e na Loja para identificar um produto específico no aplicativo. Dê a ele um nome exclusivo (para seu aplicativo) e significativo para que você possa identificar rapidamente o recurso correto que ele representa enquanto estiver codificando. Aqui estão alguns exemplos de nomes:
- "SpaceMissionLevel4"
- "ContosoCloudSave"
- "Pacote Arco-Íris"
Observação
O token de oferta no aplicativo que você usa em seu código deve corresponder ao valor da ID do produto especificado ao definir o complemento correspondente para seu aplicativo no Partner Center.
Codificar o recurso em um bloco condicional
Você deve colocar o código de cada recurso associado a um produto no aplicativo em um bloco condicional que testa para ver se o cliente tem uma licença para usar esse recurso.
Aqui está um exemplo que mostra como você pode codificar um recurso de produto chamado featureName em um bloco condicional específico da licença. A cadeia de caracteres, featureName, é o token que identifica exclusivamente esse produto no aplicativo e também é usado para identificá-lo na Loja.
if (licenseInformation.ProductLicenses["featureName"].IsActive) { // the customer can access this feature } else { // the customer can' t access this feature }
Adicione a interface de compra para esse recurso
Seu aplicativo também deve fornecer uma maneira para que seus clientes comprem o produto ou recurso oferecido pelo produto no aplicativo. Eles não podem comprá-los por meio da Loja da mesma forma que compraram o aplicativo completo.
Veja como testar para ver se o cliente já possui um produto no aplicativo e, se não tiver, exibe a caixa de diálogo de compra para que possa comprá-lo. Substitua o comentário "mostrar a caixa de diálogo de compra" pelo código personalizado para a caixa de diálogo de compra (como uma página com um botão amigável "Comprar este aplicativo!").
async void BuyFeature() { if (!licenseInformation.ProductLicenses["featureName"].IsActive) { try { // The customer doesn't own this feature, so // show the purchase dialog. await CurrentAppSimulator.RequestProductPurchaseAsync("featureName", false); //Check the license state to determine if the in-app purchase was successful. } catch (Exception) { // The in-app purchase was not completed because // an error occurred. } } else { // The customer already owns this feature. } }
Etapa 3: Alterar o código de teste para as chamadas finais
Esta é uma etapa fácil: altere todas as referências a CurrentAppSimulator para CurrentApp no código do seu aplicativo. Você não precisa mais fornecer o arquivo WindowsStoreProxy.xml, portanto, remova-o do caminho do aplicativo (embora talvez você queira salvá-lo para referência ao configurar a oferta no aplicativo na próxima etapa).
Etapa 4: Configurar a oferta de produto no aplicativo na Loja
No Partner Center, navegue até seu aplicativo e crie um complemento que corresponda à sua oferta de produto no aplicativo. Defina a ID do produto, o tipo, o preço e outras propriedades do complemento. Certifique-se de configurá-lo de forma idêntica à configuração definida no WindowsStoreProxy.xml durante o teste.
Observação
O token de oferta no aplicativo que você usa em seu código deve corresponder ao valor da ID do produto especificado para o complemento correspondente no Partner Center.
Comentários
Se você estiver interessado em fornecer aos seus clientes opções de produtos consumíveis no aplicativo (itens que podem ser comprados, usados e comprados novamente, se desejado), vá para o tópico Habilitar compras de produtos consumíveis no aplicativo.
Se você precisar usar recibos para verificar se o usuário fez uma compra no aplicativo, consulte Usar recibos para verificar compras de produtos.