O SDKBOX é um conjunto de ferramentas para plataformas mobile (Android e IOS) que facilita a integração com diversos serviços como Media Social, Ratings, Analytics, etc.
Nesse tutorial vamos conhecer a parte responsável pelas IAP já que o SDKBOX promete uma integração muito fácil. Também veremos uma abordagem prática de como implementá-la no Unity para “deploy” em Android.
Preparando o terreno
Vamos começar partindo do princípio de que você já fez o cadastro dos itens de venda no painel do desenvolvedor do Google Play. Como exemplo usaremos os seguintes ids: br.com.meustudio.meujogo.100moedas e br.com.meustudio.meujogo.500moedas.
Pronto, agora devemos criar um projeto no Unity ou você pode utilizar algum que geralmente use para testes.
Abra a Asstes Store e procure por “SDKBOX”.
Você verá diversas ferramentas oferecidas pelo SDK mas, baixe e importe apenas a que diz In App Purchase.
Configurando o IAP.
Depois de importado você verá que foi criada uma pasta chamada SDKBOX. Abrindo esta, verá uma outra chamada iap. Nesta última, procure pelo “prefab” chamado iap. Você deve importá-lo para a sua cena, onde ficaria a loja, por exemplo.
Agora com o GameObject IAP selecionado no “inspector”, você verá as opções para configuração: IOS Products, Android Key, Android Products e Callbacks.
Aqui vamos ignorar o array IOS Products e devemos preencher o campo Android Key como a nossa key privada obtida no painel.
Depois temos que adicionar os itens e cadastrar no array de Android Products. Eles são os mesmos que foram cadastrados no painel. Para isso, deixe o “size” do array de acordo com a quantidade de itens, devemos informar o nome (Name), o id(ex br.com.example.product) e marcar se é um consumível ou não. De acordo com o exemplo você deve ver algo assim:
Por enquanto a configuração está pronta, mas logo voltaremos para falar dos callbacks.
Chamando a função de compra
Configurada a loja precisamos de alguma forma “startar” a compra. A mais simples dela é adicionar um Button a cena. Também no evento OnClick deste, adicionar a chamada ao método purchase do prefab IAP passando qual o ID do item que foi comprado.
Agora, quando pressionarmos o botão, veremos a interface do sistema para a compra. Então precisaremos tratar os resultados das compras, certo? Vamos lá.
Tratando os Callbacks
Voltando ao prefab IAP você poderá ver os diversos callback que podemos usar, contudo vamos aqui trabalhar em cima do sucesso e da falha.
Para tratá-los, vamos criar uma classe para este propósito.
Então crie um Script C# chamado IAPHandler, por exemplo, com o seguinte trecho de código:
using Sdkbox;
using UnityEngine;
public class IAPHandler : MonoBehaviour { public void OnSuccess(Product product) { switch (product.id) { case "br.com.meustudio.meujogo.100moedas": Debug.Log("100 moedas para o jogador"); break; case "br.com.meustudio.meujogo.500moedas": Debug.Log("500 moedas para o jogador"); break; } Debug.Log("Compra realizada com sucesso"); } public void OnFaill(Product product, string msg) { Debug.Log("a compra falhou"); } }
Agora adicione este script a algum dos gameobject da cena. Nesse caso, pode ser o próprio IAP.
Nos callbacks, adicione o gameobject que você adicionou o script de handler às funções de On Success e On Falilure e seleciona a função respectiva. Isso vai tratar o resultado.
Na documentação do SDK que é baixada junto com o pacote, você pode conferir o funcionamento dos outros métodos de callbacks assim como a visão, da classe Product.
Isso é tudo(ou quase hehe) pessoal. Na verdade, essa foi uma implementação bem simples do que você pode fazer. Mas acredito que, com o que foi mostrado aqui, você possa implementar da forma que mais lhe agradar.
Abraço e até a próxima.