¿Tu app para Android incorpora un proceso web de confirmación de compra con WebView?
Nos complace anunciar que Google Pay ahora es compatible con Android WebView. Esta función está disponible en WebView a partir de la versión 137.
La solución utiliza la API de solicitud de pago que permite iniciar apps de pago de Android cuando el sitio web está incorporado dentro de un WebView.
A partir de Servicios de Google Play 25.18.30 (disponible hoy), Google Pay activará la hoja de pagos nativa, lo cual significa que habrá disponibles tokens del dispositivo del usuario para la implementación cuando la activación se produzca desde un WebView.
Debido a que la API de solicitud de pago quedará inhabilitada de forma predeterminada para WebView, será necesario implementar los siguientes cambios simples:
Agrega (o actualiza) la dependencia de compilación:
androidx.webkit:webkit:1.14.0-rc01
Agrega las siguientes etiquetas de consultas
a tu 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>
Habilita la API de solicitud de pago para el WebView que uses en tu app. Asegúrate de usar la sentencia de importación correcta. No se necesitan otros cambios específicos de Google Pay.
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 último, asegúrate de usar la consola de Pay y Wallet a fin de solicitar acceso de producción para tu app:
La compatibilidad con Google Pay dentro de Android WebView te permite ofrecer Google Pay a tus usuarios de Android al incorporar tu confirmación de compra web en tu app. Si necesitas más ayuda con la implementación, inicia sesión en la Consola de Google Pay y Wallet para crear un ticket de asistencia. Además, puedes unirte a la comunidad de desarrolladores en el canal #payments, en Discord.
Sigue a @GooglePayDevs en X para conocer las próximas actualizaciones. Si tienes preguntas, etiqueta a @GooglePayDevse e incluye el hashtag #AskGooglePayDevs en tus tuits.