Além de permitir que seu app venda produtos e assinaturas digitais na Play Store, O Google Play Faturamento oferece ferramentas úteis para gerenciar seu catálogo, preços e assinaturas. e um fluxo de finalização de compra da Play Store que os usuários já conhecem. Ela também é um requisito para aplicativos publicados na Play Store que vendem produtos e softwares digitais.
O Chrome 88 está sendo lançado com um teste de origem no Android que permite a integração de: Atividades confiáveis na Web com a API Payment Request e a API de produtos e softwares digitais para implementar fluxos de compra pelo Google Play Faturamento. Esperamos que este teste de origem também esteja disponível para o ChromeOS na versão 89.
Para facilitar a integração com o app Android, a equipe da Atividade confiável na Web está lançando uma biblioteca de extensões para android-browser-helper. Este guia vai mostrar as mudanças necessárias para integrar essa biblioteca a um aplicativo atual.
Observação:este artigo aborda a integração com o app Android. Se você estiver usando Bubblewrap para criar o aplicativo, você pode usar a ferramenta para atualizá-lo. A A implementação em bolhas de sabão está sendo acompanhada neste problema. Este guia é destinado a aqueles que não usam o Bubblewrap para atualizar o app.
build.gradle
A biblioteca de extensões de faturamento depende da versão 2.1.0
de android-browser-helper
. Garanta
o aplicativo está usando uma versão igual ou superior a ela.
Também será necessário adicionar uma declaração de implementação para a biblioteca de extensões de faturamento:
dependencies {
...
implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}
DelegationService.java
O android-browser-helper vem com um DelegationService
padrão, que pode ser usado diretamente pelos apps.
Ao usar a extensão de faturamento, você precisa de uma versão ligeiramente personalizada da
DelegationService
:
Para fazer isso, é necessário criar sua própria classe DelegationService
, que estende a
original e substitui onCreate()
. Dentro de onCreate()
, será necessário adicionar
chamada de método que registra o aplicativo como um gerenciador da API de produtos e softwares digitais:
package com.example.yourapp;
import com.google.androidbrowserhelper.playbilling.digitalgoods.DigitalGoodsRequestHandler;
import com.google.androidbrowserhelper.trusted.DelegationService;
public class DelegationService
extends com.google.androidbrowserhelper.trusted.DelegationService {
@Override
public void onCreate() {
super.onCreate();
registerExtraCommandHandler(new DigitalGoodsRequestHandler(getApplicationContext()));
}
}
AndroidManifest.xml
No manifesto do Android, será necessário alterar a referência à biblioteca Delegation por conta própria
implementação. Na declaração service
correspondente, substitua
com.google.androidbrowserhelper.trusted.DelegationService
pela turma recém-criada.
<service
android:name=".DelegationService"
android:exported="true">
<intent-filter>
<action android:name="android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
A Biblioteca Faturamento também apresenta dois novos componentes que precisarão ser adicionados ao seu Manifesto: um serviço ao qual o navegador pode se conectar e verificar se o aplicativo oferece suporte ao pagamento e uma atividade que lida com o fluxo de pagamento em si:
<activity
android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|keyboard|orientation|screenLayout|screenSize"
android:exported="true">
<intent-filter>
<action android:name="org.chromium.intent.action.PAY" />
</intent-filter>
<meta-data
android:name="org.chromium.default_payment_method_name"
android:value="https://play.google.com/billing" />
</activity>
<!-- This service checks who calls it at runtime. -->
<service
android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentService"
android:exported="true" >
<intent-filter>
<action android:name="org.chromium.intent.action.IS_READY_TO_PAY" />
</intent-filter>
</service>
Saiba mais sobre a API Digital Goods e o Google Play Faturamento
Este artigo abordou as etapas necessárias especificamente no aplicativo Android que usa o Trusted Web Activity, mas a API Google Play Billing tem a própria terminologia e inclui cliente e back-end componentes de solução. Recomendamos a leitura da página Google Play Faturamento e documentação da API de produtos e softwares digitais e entender os conceitos dela antes de integrá-la a um do aplicativo em produção.