Seu app Android incorpora um processo de finalização de compra na Web usando um WebView?
Temos o prazer de anunciar que agora o Google Pay tem suporte ao Android WebView. Este recurso está disponível a partir da versão 137 do WebView.
A solução usa a Payment Request API, que permite iniciar apps Android de pagamento quando o site é incorporado a um WebView.
A partir do Google Play Services 25.18.30 (disponível hoje), o Google Pay acionará a planilha de pagamento nativa e, portanto, os tokens do dispositivo do usuário estarão disponíveis para facilitação quando acionados por um WebView.
Como a Payment Request API estará desativada por padrão para o WebView, as simples alterações abaixo precisam ser implementadas:
Adicionar (ou atualizar) a dependência de compilação:
androidx.webkit:webkit:1.14.0
Adicione as seguintes tags de consulta
ao seu AndroidManifest.xml:
<!--
Allow Chromium defined actions PAY, IS_READY_TO_PAY,
UPDATE_PAYMENT_DETAILS to be initiated in your Android App or SDK
-->
<queries>
<intent>
<action android:name="org.chromium.intent.action.PAY"/>
</intent>
<intent>
<action android:name="org.chromium.intent.action.IS_READY_TO_PAY"/>
</intent>
<intent>
<action android:name="org.chromium.intent.action.UPDATE_PAYMENT_DETAILS"/>
</intent>
</queries>
Ative a Payment Request API para o WebView que você usa em seu app. Você precisa usar a declaração de importação correta. Nenhuma outra alteração específica no Google Pay é necessária.
Kotlin (Compose):
import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.webkit.WebSettingsCompat;
import androidx.webkit.WebViewFeature;
AndroidView(
factory = {
WebView(it).apply {
// Update WebView settings to allow JavaScript and payment request
settings.javaScriptEnabled = true
if (WebViewFeature.isFeatureSupported(
WebViewFeature.PAYMENT_REQUEST)) {
WebSettingsCompat.setPaymentRequestEnabled(settings, true);
}
}
},
update = {
it.loadUrl(url)
}
)
Java:
import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.webkit.WebSettingsCompat;
import androidx.webkit.WebViewFeature;
WebView webView = findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
// Update WebView settings to allow JavaScript and payment request
webSettings.setJavaScriptEnabled(true);
if (WebViewFeature.isFeatureSupported(WebViewFeature.PAYMENT_REQUEST)) {
WebSettingsCompat.setPaymentRequestEnabled(webSettings, true);
}
Por fim, você deve usar o Console do Google Pay e da Carteira para solicitar acesso à produção para seu app:
Com o suporte ao Google Pay no Android WebView, você pode oferecer o Google Pay aos seus usuários do Android ao incorporar seu processo de finalização da compra na Web em seu app. Para obter mais ajuda com a implementação, faça login no Console do Google Pay e da Carteira para criar um tíquete de suporte. Você também pode participar da comunidade de desenvolvedores no canal #payments no Discord.
Siga @GooglePayDevs no X para conferir as atualizações futuras. Em caso de dúvidas, marque @GooglePayDevs e inclua #AskGooglePayDevs em seus tweets.