Desenvolvimento

Validar compra no iOS In App Purchase

Estamos trabalhando em um novo aplicativo para iPhone e iPad que usa o recurso de In App Purchase do iOS. Pra quem não está familiarizado, In App Purchase é uma forma de vender “bens virtuais” no seu aplicativo.

É uma forma muito mais eficiente de gerar receita no seu aplicativo visto que, na maioria dos casos, o download é gratuito, mas é possível comprar coisas dentro de uma loja no aplicativo, por exemplo: uma nova fase ou itens em um game, algo que possa fazer download, uma versão sem anúncios, etc.

A implementação no aplicativo não é nada muito complexo, a documentação oficial explica direitinho e com bons exemplos de código que você pode usar, leia com carinho.

Mas em alguns casos, é necessário que o controle de compras seja feito por algum serviço online que você vai implementar. Nesses casos, existe um recurso de validar se a compra é legítima usando uma API da apple.

A documentação de como fazer essa validação você encontra no capítulo “Verifying a Receipt with the App Store“. Este post objetiva oferecer um trecho de código em Ruby que você pode usar na sua aplicação web (API) para validar o recibo (receipt) da compra.

Abaixo temos o código Ruby para validar o receipt em ambiente de homologação (sandbox). É simples usá-lo para integrar à sua aplicação Rails.

Este arquivo uma recept válida para a loja de homologação (sandbox) para você testar o código. Baixe o arquivo e salve com o nome “receipt” no mesmo diretório do script acima.

Execute com “ruby verifyReceipt.rb”. O resultado deve ser esse:

Se você não usar Ruby, mas sim PHP, esses caras disponibilizaram o código em PHP. Tem também um trecho de código Objective-C que você vai precisar para converter o receipt para Base 64.

Download de todo o código fonte.

Espero ter ajudado! Fique à vontade para colaborar com seus comentários.