Noções básicas e configuração de compra no aplicativo no Xamarin.iOS
A implementação de compras no aplicativo requer que o aplicativo utilize a API StoreKit no dispositivo. O StoreKit gerencia toda a comunicação com os servidores iTunes da Apple para obter informações sobre o produto e realizar transações. O perfil de provisionamento deve ser configurado para compras no aplicativo e as informações do produto devem ser inseridas no iTunes Connect.
Usar a App Store para fornecer compras no aplicativo requer a seguinte configuração e configuração:
- iTunes Connect – Configurando os produtos para vender e configurando contas de usuário de área restrita para testar a compra. Você também deve ter fornecido suas informações bancárias e fiscais à Apple para que eles possam remeter os fundos coletados em seu nome.
- Portal de provisionamento do iOS – Criando um identificador de pacote e habilitando o acesso à App Store para seu aplicativo.
- Kit da Loja – Adicionando código ao seu aplicativo para exibir produtos, comprar produtos e restaurar transações.
- Código personalizado – Para rastrear as compras feitas pelos clientes e fornecer os produtos ou serviços que eles compraram. Você também pode precisar implementar um processo do lado do servidor para validar recibos se seus produtos consistirem em conteúdo baixado de um servidor (como edições de livros e revistas).
Existem dois "ambientes de servidor" do Store Kit:
- Produção – Transações com dinheiro real. Acessível apenas através de aplicações que tenham sido submetidas e aprovadas pela Apple. Os produtos de compra no aplicativo também devem ser revisados e aprovados antes de estarem disponíveis no ambiente de produção.
- Sandbox – Onde seus testes acontecem. Os produtos estão disponíveis aqui imediatamente após a criação (o processo de aprovação só se aplica ao ambiente de produção). As transações na área restrita exigem que os usuários de teste (não IDs Apple reais) realizem transações.
Regras de compra no aplicativo
Você não pode aceitar outras formas de pagamento para produtos ou serviços digitais dentro do seu aplicativo, nem mencioná-los ou indicar seus usuários para eles de dentro de um aplicativo. Isso significa que você não pode aceitar cartões de crédito ou PayPal quando a compra no aplicativo é o mecanismo de pagamento mais adequado. Há um caso especial para comprar produtos digitais fora do aplicativo, mas para uso no aplicativo, como comprar livros em um site que estão associados a um "login" específico e usar esse "login" no aplicativo permite que o usuário acesse os livros comprados. Os aplicativos que operam dessa forma não têm permissão para mencionar ou vincular ao recurso de compra externa – os desenvolvedores devem comunicar esse recurso a seus usuários de outras maneiras (talvez via e-mail marketing ou algum outro canal direto).
No entanto, como você não pode usar compras no aplicativo para bens físicos, nesse caso você tem permissão para usar um mecanismo de pagamento alternativo (por exemplo, cartão de crédito, PayPal) de dentro do aplicativo.
A Apple deve aprovar todos os produtos antes que eles sejam colocados à venda – o nome, a descrição e uma captura de tela do "produto" são necessários para revisão. Os tempos de revisão do produto são os mesmos das revisões de aplicativos.
Você não pode escolher qualquer preço para o seu produto – você só pode selecionar um "nível de preço" que tenha um valor específico em cada país/moeda que a Apple suporta. Você não pode ter um nível de preço diferente em mercados diferentes.
Configuração
Antes de escrever qualquer código de compra no aplicativo, você deve fazer algum trabalho de configuração no iTunes Connect (itunesconnect.apple.com) e no Portal de provisionamento do iOS (developer.apple.com/iOS).
Estas três etapas devem ser concluídas antes de escrever qualquer código:
- Conta de desenvolvedor da Apple – Envie suas informações bancárias e fiscais para a Apple.
- Portal de provisionamento do iOS – Verifique se seu aplicativo tem uma ID de aplicativo válida (não um curinga com um asterisco *) e se a opção Compra no aplicativo está habilitada.
- Gerenciamento de aplicativos do iTunes Connect – Adicione produtos ao seu aplicativo.
Conta de desenvolvedor da Apple
Criar e distribuir aplicativos gratuitos requer muito pouca configuração no iTunes Connect, no entanto, para vender aplicativos pagos ou compras no aplicativo é necessário que você forneça à Apple informações bancárias e fiscais. Clique em Contratos, Impostos e Bancários no menu principal mostrado aqui:
Sua Conta de desenvolvedor deve ter um contrato de aplicativos pagos do iOS em vigor, conforme mostrado nesta captura de tela:
Você não poderá testar nenhuma funcionalidade do StoreKit até ter um contrato de Aplicativos Pagos do iOS – as chamadas do StoreKit em seu código falharão até que a Apple processe suas informações de Contratos, Impostos e Bancos.
Portal de provisionamento do iOS
Novos aplicativos são configurados na seção IDs de aplicativo do Portal de provisionamento do iOS. Para criar uma nova ID de Aplicativo, vá para o Centro de Membros do Portal de Provisionamento do iOS, navegue até a seção Certificados, Identificadores e Perfis do Portal e clique em Identificadores em Aplicativos iOS. Em seguida, clique no "+" no canto superior direito para gerar uma nova ID do aplicativo.
O formulário para criar novas IDs de aplicativo
tem esta aparência:
Insira algo apropriado para a Descrição, para que você possa identificar facilmente essa ID de aplicativo em uma lista. Para o Prefixo da ID do Aplicativo, selecione a ID da Equipe.
Identificador de pacote/formato de sufixo de ID de aplicativo
Você pode usar qualquer string que quiser para seu Identificador de Pacote (desde que seja exclusivo em sua conta), no entanto, a Apple recomenda que você siga o formato DNS reverso em vez de usar qualquer cadeia de caracteres arbitrária. O aplicativo de exemplo que acompanha este artigo usa com.xamarin.storekit.testing para o Identificador de Pacote, no entanto, seria igualmente válido usar um identificador como my_store_example (mesmo que a Apple não o recomende).
Importante
A Apple também permite que o asterisco curinga seja adicionado ao final de um Identificador de Pacote para que um único ID de Aplicativo possa ser usado para vários aplicativos, no entanto, IDs de Aplicativo curinga não podem ser usados para In-AppPurchase. Um exemplo de identificador de pacote curinga pode ser com.xamarin.*
Habilitando os Serviços de Aplicativo
Observe que a Compra no Aplicativo será habilitada automaticamente na lista Serviços:
Perfis de provisionamento
Crie Perfis de Provisionamento de Desenvolvimento e Produção como faria normalmente, selecionando a ID do Aplicativo que você configurou para Compras no Aplicativo. Consulte os guias de provisionamento e publicação de dispositivos iOS na App Store para obter mais informações.
iTunes Connect
Clique em Meus aplicativos no iTunes Connect para criar ou editar uma entrada de aplicativo iOS. A página de visão geral do aplicativo é mostrada aqui:
Clique em Compras no aplicativo para criar ou editar seus produtos para venda. Esta captura de tela mostra o aplicativo de exemplo com vários produtos já adicionados:
O processo para adicionar novos produtos tem duas etapas:
- Escolha o tipo de produto:
- Insira os atributos do produto, incluindo a ID do produto, a camada de preços e as descrições localizadas:
Os campos obrigatórios para cada produto de compra no aplicativo são descritos abaixo:
Nome de Referência
O Nome de Referência não é exibido aos usuários; é para uso interno e só aparece no iTunes Connect.
Formato de ID do Produto
Um Identificador de Produto só pode conter caracteres alfanuméricos (A-Z,a-z,0-9), sublinhado (_) e ponto (.). Embora você possa usar qualquer cadeia de caracteres para seus identificadores, a Apple recomenda o formato DNS reverso. Por exemplo, o aplicativo de exemplo usa este identificador de pacote:
com.xamarin.storekit.testing
Portanto, a convenção para identificar produtos de compra no aplicativo seria a seguinte:
com.xamarin.storekit.testing.consume5credits
com.xamarin.storekit.testing.consume10credits
com.xamarin.storekit.testing.sepia
com.xamarin.storekit.testing.greyscale
Esta convenção de nomenclatura não é aplicada, apenas uma recomendação para ajudá-lo a gerenciar seus produtos. Além disso, apesar de seguirem a mesma convenção de DNS reverso, os identificadores de produto não estão relacionados ao identificador de pacote e não são necessários para começar com a mesma cadeia de caracteres. Ainda seria válido usar identificadores como photo_product_greyscale (mesmo que a Apple não recomende).
A ID do produto não é exibida para os usuários, mas é usada para fazer referência ao produto no código do aplicativo.
Tipo de Produto
Há cinco tipos de produto de compra no aplicativo que você pode oferecer:
- Consumível – Coisas que são "gastas", como a moeda do jogo que o jogador pode gastar. Se o usuário fizer um backup/restauração ou tiver seu dispositivo atualizado, uma transação consumível NÃO será restaurada também (o que efetivamente daria ao jogador o mesmo benefício novamente). O código do aplicativo deve fornecer o "item consumível" assim que a transação for concluída.
- Não consumíveis – Produtos que o usuário "possui" uma vez comprado, como uma edição de revista digital ou um nível de jogo.
- Assinaturas renováveis automaticamente – Assim como uma assinatura de revista do mundo real, no final do período de assinatura a Apple cobra automaticamente o cliente novamente e estende o prazo de assinatura, para sempre ou até que o cliente a cancele explicitamente. Este é o método de pagamento preferido para aplicativos de banca de jornal (na verdade, os aplicativos DEVEM suportar esse método de pagamento para serem aprovados para distribuição de banca de jornal).
- Assinatura gratuita – Só pode ser oferecida em aplicativos habilitados para banca e permite que o cliente acesse o conteúdo da assinatura em todos os seus dispositivos. As assinaturas gratuitas nunca expiram.
- Assinatura sem renovação – Deve ser usada para vender acesso limitado por tempo a conteúdo estático, como um mês de acesso a um arquivo de fotos.
Atualmente, este documento abrange apenas os dois primeiros tipos de produto (consumível e não consumível).
Níveis de preço
A App Store não permite que você escolha um preço arbitrário para seus produtos – a Apple fornece níveis de preço fixo que você pode escolher. Os preços são fixados em cada moeda e a Apple reserva-se o direito de ajustar os preços relativos (por exemplo, após uma alteração sustentada da taxa de câmbio relativa entre uma determinada moeda e o dólar americano).
A Apple fornece uma matriz de preços para ajudá-lo a selecionar o nível correto para a moeda/preço desejado. Um trecho da matriz de preços (agosto de 2012) é mostrado aqui:
No momento em que este artigo foi escrito (junho de 2013) existem 87 níveis de USD 0.99 a USD 999.99. A Matriz de Preços mostra o preço que seus clientes pagarão e também o valor que você receberá da Apple – isso é menos a cobrança de 30% e também quaisquer impostos locais que eles são obrigados a recolher (observe no exemplo que os vendedores dos EUA e do Canadá recebem 70c por um produto 99c, enquanto os vendedores australianos recebem apenas 63c devido ao "Imposto sobre Bens e Serviços" cobrado sobre o preço de venda).
O preço do seu produto pode ser atualizado a qualquer momento, incluindo alterações de preço programadas que entram em vigor em uma data futura. Esta captura de tela mostra como uma alteração de preço datada futura é adicionada – o preço está sendo temporariamente alterado do nível 1 para o nível 3 apenas para o mês de setembro:
Produtos gratuitos não suportados
Embora a Apple tenha fornecido uma opção especial de assinatura gratuita para aplicativos de banca de jornal, não é possível definir um preço zero (gratuito) para qualquer outro tipo de compra no aplicativo. Embora você possa editar (ou seja, baixar) os preços das promoções de vendas, não pode fazer compras no aplicativo "grátis" por meio do iTunes Connect.
Localização
No iTunes Connect, você pode inserir diferentes textos de Nome e Descrição para qualquer número de idiomas suportados. Cada idioma pode ser adicionado/editado através de um pop-up:
Quando você exibe informações do produto em seu aplicativo, o texto localizado fica disponível para exibição via StoreKit. A exibição da moeda também deve ser localizada para mostrar o símbolo correto e a formatação decimal – essa formatação é abordada posteriormente no documento.
Revisão da App Store
O mesmo que os aplicativos – cada produto é revisado pela Apple antes de ser autorizado a ser colocado à venda. Os produtos podem ser rejeitados por conteúdo impróprio no Nome ou na Descrição, ou a Apple pode decidir que você escolheu o tipo de produto errado (por exemplo, você criou uma edição de livro ou revista, mas usou o tipo de produto Consumível). As avaliações de produtos podem levar tanto tempo quanto uma revisão de aplicativo.
Na primeira vez que um aplicativo é enviado com a compra no aplicativo habilitada (seja um novo aplicativo ou a funcionalidade tenha sido adicionada a um existente), você também deve escolher alguns produtos para enviar com ele. O portal iTunes Connect solicitará que você faça isso, conforme mostrado nesta captura de tela:
O aplicativo e as compras no aplicativo serão revisados juntos, para que todos sejam aprovados de uma só vez (para que o aplicativo não entre na loja sem nenhum produto aprovado!).
Depois que sua primeira versão com capacidade de compra no aplicativo for aprovada, você poderá adicionar mais produtos e enviá-los para revisão a qualquer momento. Você também pode optar por enviar uma nova versão junto com produtos específicos de compra no aplicativo, usando a página Detalhes da versão como o prompt sugere.
Consulte as Diretrizes de revisão da App Store para obter mais informações.
Parte 2 - Visão geral do kit de loja e recuperação de informações do produto