Vendendo Produtos e Inscrições Com Google In-App Billing no Android

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

Email inválido.
Blog /Android /Vendendo Produtos e Inscrições Com Google In-App Billing no Android

Vendendo Produtos e Inscrições Com Google In-App Billing no Android

Vinícius Thiengo
(4147) (21) (2)
Go-ahead
"Tolerância e receptividade são necessidades práticas para o sonhador de hoje. Aqueles que têm medo de novas ideias estão condenados ao fracasso antes mesmo de começar."
Napoleon Hill
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Opa, blz?

Nesse vídeo mostro como implementar o In-APP Billing em nossas APPs Android para podermos utilizar a plataforma de pagamento do Google (a mesma utilizada para APPs pagas no Google Play Store) para processar as compras de produtos (o Google sinaliza que somente produtos digitais ou inscrições devem utilizar o In-APP Billing) e inscrições dentro de nossas APPs. A API é bem simples de integrar, é necessário ter já baixado o Google Play Billing Library pelo SDK Manager. O Google na documentação do In-app Billing deixa claro que a API deve ser utilizada para produtos digitais e que o Google somente fornece a descrição e alguns outros dados do produtos / inscrição e a APP é encarregada de fornecer o conteúdo referente a compra realizada.

Como comentado em vídeo, tive problemas para utilizar a versão alfa da APP como versão de teste, logo utilizei a versão de produção que passou sem problemas, depois apenas fiz o reembolso pela página do Google Wallet. É necessário que sua conta de desenvolvedor do Google Play Store esteja com a conta de Comerciante ativada (conta no Google Wallet) que por sinal é bem fácil também de ativar. Fique ligado quanto a configuração necessária no AndroidManifest.xml e com os arquivos que devem estar no projeto de sua, arquivos que devem ser obtidos do exemplo que vem junto ao Google Play Billing Library. No vídeo cometi alguns mistakes, mas um merece maior relevancia que é o uso do método correto para compra de produto e compra de inscrição, para compra de produto utilizamos o método launchPurchaseFlow() para compra de inscrição utilizamos o método launchSubscriptionPurchaseFlow(), ambos podem ter exatamente os mesmos parâmetros.

Apesar de a integração ser fácil e o controle na página do Google Wallet ser fácil também o Google fica com aproximadamente 30% do valor de compra realizado. Nesse caso você tem de pesar para ver se é jogo colocar o Billing em sua APP ou quebrar a cabeça com uma outra API de pagamento que cobre uma taxa menor. Então é isso, vou evitar mais delongas e deixar você assistir ao vídeo.

O link para download do projeto está logo abaixo no post.

Segue links de vídeos que podem lhe ajudar a complementar o conteúdo desse vídeo:

Assinando Uma APP Android e Publicando na Play Store

Application Class no Android, Entendendo e Utilizando

Segue link das páginas apresentadas no vídeo:

Página de start do Google In-app Billing no site do Android

Página de instalação do plugin do ADT no Eclipse

Vlw

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Relacionado

Pacote Google Play Services Ads Para Anúncios no AndroidPacote Google Play Services Ads Para Anúncios no AndroidAndroid
Google Cloud Messaging (GCM) no AndroidGoogle Cloud Messaging (GCM) no AndroidAndroid
AutoCompleteTextView no Android, Entendendo e UtilizandoAutoCompleteTextView no Android, Entendendo e UtilizandoAndroid
AccountManager no Android, Entendendo e UtilizandoAccountManager no Android, Entendendo e UtilizandoAndroid

Compartilhar

Comentários Facebook (2)

Comentários Blog (19)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
Rodrigo Gomes Araújo (3) (0)
24/03/2018
Boa noite, gosto muito de seus vídeos. Tem como fazer um com o atual google play billing library?
Responder
Vinícius Thiengo (2) (0)
25/03/2018
Rodrigo, tudo bem?

Obrigado pela dica. Vou sim estar atualizando este conteúdo de pagamentos com o In-App Billing do Android.

Abraço.
Responder
Fabio Costa (2) (0)
23/09/2018
Olá Thiengo que video bom maravilha muito obrigado man.
Queria muito aplicar o conteúdo do vídeo mas com a nova library do billing ajuda a gente Thiengo faz um update do conteúdo com a nova versão. please please plase.


implementation 'com.android.billingclient:billing:1.1'
Responder
Jose Antonio (1) (0)
24/07/2017
alguem pode me ajudar por meu site em um aplicativo? eu so preciso de um aplicativo com uma unica interface e com o botao que redireciona para meu site, quero fazer esse app para usar o in-app billing para meus clientes fazer a assinatura no meu site, tenho varios clientes e nao estou conseguindo ter lucros exprssivos com outros sistemas de pagamentos direto  no site, esta me dando muita dor de cabeça ficar atualizando outros gateway de pagamentos.
Responder
Vinícius Thiengo (0) (0)
26/07/2017
Jose Antonio, tudo bem?

Caso queira o site abrindo dentro do aplicativo, sem um botão para isso, veja os dois artigos e vídeos dos links a seguir:

http://www.thiengo.com.br/webview-no-android-entendendo-e-utilizando
http://www.thiengo.com.br/facilitando-o-desenvolvimento-de-apps-android-com-a-biblioteca-androidutilcode

Caso queira somente ter um aplicativo com um Button que ao receber o clique abra o site no navegador do device, crie esses simples aplicativo utilizando o Button e um listener de click vinculado a ele e dentro desse listener de click coloque o código de abertura de site no navegador, como no link a seguir:

https://stackoverflow.com/a/3004542/2578331

Abraço.
Responder
Camilo (1) (0)
30/06/2017
Muito bom o video, bem explicado. Porém nao estou conseguindo implementar o mesmo via fragment, teria a possibilidade de postar um código similar pra fragment?

Valeu e parabéns pelo blog e iniciativas!!
Responder
Vinícius Thiengo (0) (0)
30/06/2017
Camilo, tudo bem?

Deveria ser simples o uso também no Fragment. Com o getActivity() você tem acesso ao mesmo contexto no Frag que quando trabalhando diretamente com Activity.

Qual problema está enfrentando? O que é apresentado nos logs do Android Studio assim que tenta o uso no Fragment?

Abraço.
Responder
Camilo (1) (0)
03/07/2017
Thiengo agradeço sua disponibilidade pra responder minha duvida.

Então, o fluxo do erro é o seguinte:

Clico em comprar -> Sobe o dialog da compra -> Clico fora pra escolher outro sem confirmar compra -> Escolho outro produto e dá o erro(ele minimiza o app e volta na tela inicial).

Ele diz que ja existe outra operação assíncrona, abaixo o erro:

java.lang.IllegalStateException: Can't start async operation (launchPurchaseFlow) because another async operation(launchPurchaseFlow) is in progress.
                                                       at com.cba.camiloavancini.mytestebilling.util.IabHelper.flagStartAsync(IabHelper.java:819)
                                                       at com.cba.camiloavancini.mytestebilling.util.IabHelper.launchPurchaseFlow(IabHelper.java:373)
                                                       at com.cba.camiloavancini.mytestebilling.util.IabHelper.launchPurchaseFlow(IabHelper.java:338)
                                                       at com.cba.camiloavancini.mytestebilling.FragmentLoja$4$4.onClick(FragmentLoja.java:164)
Responder
Vinícius Thiengo (0) (0)
04/07/2017
Camilo, estou olhando algumas discussões dentro de uma dúvida no StackOverflow similar a sua:

https://stackoverflow.com/questions/15575605/android-in-app-billing-cant-start-async-operation-because-another-async-operat/39564569

Apesar de a resposta do link a seguir ser marcada como a mais provável correta:

https://stackoverflow.com/a/20485213/2578331

Aparentemente a que pode solucionar seu problema é a resposta com o uso do método flagEndAsync(). Está utilizando ele?

https://stackoverflow.com/a/39564569/2578331

Veja se funciona para ti. Caso não, volte aqui que tentamos outra solução. Abraço.
Responder
Camilo (1) (0)
05/07/2017
E ae Thiengo blz?

Então no dia que eu postei o comentário eu consegui resolver, mas é isso mesmo que vc falou tem que mudar a função

void flagStartAsync(String operation)  que se encontra dentro do "IabHelper.java"

Dai eu acrescentei a linha:

if (mAsyncInProgress) {
            flagEndAsync();
        }

Dai funcionou de boa! Muito obrigado por sua ajuda, valeu msm!

Aproveitando a deixa tenho uma duvida meio noob, o buy(View view) ele não precisa ser chamado? No fragment funciona da mesma maneira? Eu to fazendo direto botão.setOnClickListener() dentro do startSetup, ta errado dessa forma?. To perguntando, pois não consigo comprar o produto mais de uma vez, mesmo seguindo seu tutorial, e talvez isso seja o problema.

Mais uma vez muito obrigado!!
Responder
Vinícius Thiengo (0) (0)
05/07/2017
Camilo, tudo bom aqui.

Confesso que não tenho expertise com a In-App Billing, que é muito útil para aplicativos que vendem acesso a partes restritas dele.

Mas se me lembro bem você não consegue prosseguir com a compra do mesmo item? teria de verificar melhor na API se isso é possível.

De qualquer forma, caso você realmente esteja vendendo produtos, mesmo que digitais, recomendo que utilize um checkout transparente como faço no conteúdo do link a seguir: http://www.thiengo.com.br/checkout-transparente-da-web-no-android

Até a taxa paga por produto vendido é muito inferior aos 30% do In-App Billing. Veja se esse meio de vendas serve ao seu projeto. Abraço.
Responder
26/04/2017
Alguém sabe explicar como é feita a taxação em cima da venda?
Responder
Vinícius Thiengo (0) (0)
26/04/2017
Magno, tudo bem?

Até a época da construção do vídeo acima a taxa era de 30%, mas esse valor era cobrado para o pagamento de taxas do Google ao governo e a fornecedores. Ou seja, não se tornava lucro da empresa.

O valor disponibilizado a ti já é o valor com o desconto de 30%.

Abraço.
Responder
27/04/2017
Entendi, muita coisa. Talvez compense usar algum gateway de pagamento de terceiros tipo o Moip.
Responder
Vinícius Thiengo (0) (0)
27/04/2017
Magno, sim. Devido a isso a pouco tempo atrás fiz um artigo / vídeo mostrando como trabalhar com uma API de checkout transparente Web em aplicativos Android.

A implementação é simples, mesmo exigindo um pouco de codificação com tecnologia Web. Segue link: http://www.thiengo.com.br/checkout-transparente-da-web-no-android

No projeto eu utilizei a API do pagar.me, mas é completamente possível o uso da API do Moip. Abraço.
Responder
10/05/2016
Fala Thiengo blz? parabens pelo post, fiquei com uma dúvida, então pra poder usar eu vou precisar ter um web service no app pra poder ficar guardando o TOKEN das transações? como o TOKEN não é obrigatório, vc acha q não utilizando ele pode ter problemas futuros q não possa ser resolvido? agradeço o espaço...
Responder
Vinícius Thiengo (1) (0)
12/05/2016
Fala Edriano, blz?
Acredito que não há problemas em não salvá-lo, pois no dashboard do Google fica tudo salvo e token faz lembrar chave temporária. Abraço
Responder
Daniel (1) (0)
04/01/2016
Thiengo, tu já recebeu os pagamentos via Wallet ou conhece alguém que já recebeu os pagamentos do mesmo ?
Procurei na internet e não vi ninguém dizer se recebeu ou não..se precisa de conta corrente ou outro tipo de conta..Tu sabe me informar a data que o Wallet deposita o dinheiro para o banco ? e precisa de algum pin pra confirmar a conta do wallet ? Porque ao meu ver é tão fácil, vendeu e já vai pro wallet..
Responder
Vinícius Thiengo (0) (0)
06/01/2016
Daniel, blz?
Utilizar o Wallet tb é novidade para mim, mas ele não deve fugir mt do que é o AdSense / AdMob não, antes de obter a grana, provavelmente vc terá de aguardar uma carta do Google chegar em sua casa e então utilizar o código no site para liberar o recebimento do dinheiro em sua conta. Terá de ver mais na doc dele. Abraço
Responder