Assinaturas e relatórios no Xamarin.iOS
Sobre assinaturas não renovadas
As assinaturas não renovadas destinam-se a produtos que representam a venda de um serviço com uma restrição de tempo (como acesso de uma semana a um aplicativo de navegação ou acesso limitado por tempo a um arquivo de dados).
Principais diferenças entre assinaturas não renovadas e outros tipos de produto:
- A definição do produto no iTunes Connect não inclui o termo . O código do aplicativo deve ser capaz de inferir o período de validade da ID do Produto.
- Eles podem ser comprados várias vezes (como um produto consumível). Os aplicativos são necessários para gerenciar o termo/expiração e a renovação da assinatura e impedir que o usuário compre assinaturas sobrepostas.
- As compras não são compatíveis com a função De restauração do StoreKit. Se a assinatura deve estar disponível em todos os dispositivos de um usuário, o aplicativo terá que projetar e implementar esse recurso em conjunto com um servidor remoto. Os aplicativos também são responsáveis por fazer backup da assinatura status para casos em que um dispositivo é copiado em backup e restaurado do backup.
- Visão geral da implementação
- As assinaturas não renovadas normalmente devem ser implementadas usando o fluxo de trabalho Server-Delivered e gerenciadas como produtos consumíveis.
Sobre assinaturas gratuitas
As assinaturas gratuitas permitem que os desenvolvedores coloquem conteúdo gratuito em aplicativos da Banca de Notícias (eles não podem ser usados em aplicativos não Newsstand). Depois que uma assinatura gratuita for iniciada, ela estará disponível em todos os dispositivos do usuário. As assinaturas gratuitas nunca expiram; eles só terminam quando o aplicativo é desinstalado.
Visão geral da implementação
Assinaturas gratuitas se comportam muito como assinaturas Auto-Renováveis. O aplicativo deve ter um produto de Assinatura Gratuita disponível para 'compra' no iTunes Connect. Quando comprado pelo usuário, a compra gratuita da assinatura deve ser validada como um produto de assinatura renovável automática. As transações de assinatura gratuitas podem ser restauradas.
Sobre assinaturas renováveis automáticas
Assinaturas auto-renováveis são usadas principalmente em aplicativos newsstand. Eles representam um produto que concede ao usuário acesso ao conteúdo dinâmico por um determinado período de tempo, que é configurado no iTunes Connect (definir períodos que variam de 7 dias a 1 ano). As assinaturas são renovadas automaticamente, cobrando a ID da Apple dos usuários no final de cada período de assinatura, a menos que o usuário opte por recusar. Esse tipo de produto funciona bem para assinaturas de revistas ou notícias, em que o usuário obtém acesso a cada problema publicado enquanto sua assinatura é válida.
Visão geral da implementação
As Assinaturas Renováveis Automáticas devem ser implementadas usando o fluxo de trabalho Server-Delivered Products (consulte a seção Verificação de recibo e produtos de Server-Delivered ).
Segredo compartilhado
O In-App Comprar Segredo Compartilhado deve ser usado na solicitação JSON ao verificar assinaturas renováveis automáticas em seu servidor. O segredo compartilhado é criado/acessado por meio do iTunes Connect.
Na home page do iTunes Connect, selecione Meus Aplicativos:
Selecione um aplicativo e clique na guia Compras no Aplicativo :
Na parte inferior da página, selecione Exibir ou gerar um segredo compartilhado:
Para usar o segredo compartilhado, inclua-o no conteúdo JSON que é enviado aos servidores da Apple ao validar um recibo de compra no aplicativo para uma assinatura auto-renovável, desta forma:
{
"receipt-data" : "(receipt bytes here)",
"password" : "(shared secret bytes here)"
}
O campo status da resposta será zero se a compra for válida, como acontece com outros tipos de produto.
Baixar itens após o termo de assinatura inicial
Como parte da entrega de produtos de assinatura, o código deve verificar frequentemente o recibo conhecido mais recente em relação aos servidores da Apple. Se uma assinatura tiver sido renovada automaticamente desde a última verificação, a resposta JSON conterá campos adicionais que notificarão o aplicativo da transação que ocorreu (o que deve estender a validade das assinaturas). A resposta JSON conterá:
{
"status" : 0,
"receipt" : { (receipt here) },
"latest_receipt" : "(base-64 encoded receipt here)",
"latest_receipt_info" : { (latest receipt info here) }
}
Se o status for zero, a assinatura ainda será válida e os outros campos conterão dados válidos. Se o status for 21006, a assinatura expirou. Consulte a documentação Verificando um recibo de assinatura renovável automática para obter outros códigos de erro.
Restaurando assinaturas renováveis automáticas
Você receberá de volta várias transações – a transação de compra original mais uma transação separada por cada período de tempo em que a assinatura foi renovada. Você precisa acompanhar as datas de início e os termos para entender qual é o período de validade.
O objeto SKPaymentTransaction NÃO inclui o termo de assinatura – você deve usar uma ID de Produto diferente para cada termo e código de gravação que possa extrapolar o período de assinatura a partir da data de compra da transação.
Testando a renovação automática
Para facilitar o teste de assinaturas, suas durações são compactadas ao testar na área restrita. As assinaturas de 1 semana são renovadas a cada 3 minutos e 1 ano de renovação a cada hora. As assinaturas renovarão automaticamente um máximo de 6 vezes durante o teste na área restrita.
Relatórios
O iTunes Connect ( itunesconnect.apple.com) fornece:
Vendas e tendências – exibe detalhes de downloads de aplicativos, atualizações e compras no aplicativo.
Pagamentos e Relatórios Financeiros – detalha os rendimentos obtidos por seus aplicativos, bem como listar pagamentos que foram feitos a você e quanto você deve.
Um exemplo de relatório de Vendas e Tendências é mostrado abaixo:
Há também um aplicativo iOS do ITC Connect Mobile . Capturas de tela do iPhone para algumas das estatísticas disponíveis são mostradas aqui: