Algunas empresas requieren la capacidad de incorporar su proceso de finalización de compra web en sus aplicaciones para dispositivos móviles mediante WebView. En esta guía, se explican los pasos necesarios para admitir Google Pay en tu WebView después de completar la integración web de Google Pay.
Requisitos del dispositivo del usuario
- Servicios de Google Play 25.18.30 o versiones posteriores
- Android WebView para Chrome 137 o versiones posteriores
Cambios obligatorios en la app
La API de Payment Request se usa para iniciar la hoja de Google Pay cuando el proceso de finalización de compra web se incorpora en un WebView de Android. De forma predeterminada, la API de Payment Request estará inhabilitada para WebView. Se requieren los siguientes cambios en el código de tu app:
Agrega (o actualiza) la dependencia de compilación:
Groovy
dependencies { implementation 'androidx.webkit:webkit:1.14.0' }
Kotlin
dependencies { implementation("androidx.webkit:webkit:1.14.0") }
Catálogo de versiones
[versions] webkit = "1.14.0" [libraries] androidx-ktx = { group = "androidx.webkit", name = "webkit", version.ref = "webkit" }
Agrega las siguientes <queries> etiquetas a tu AndroidManifest.xml:
<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 Payment Request para el WebView que usas en tu app.
Asegúrate de usar la instrucción de importación correcta para el código que usas.
Kotlin
import android.webkit.WebSettings; import android.webkit.WebView; import androidx.webkit.WebSettingsCompat; import androidx.webkit.WebViewFeature; AndroidView( factory = { // Update WebView settings to allow JavaScript and payment request settings.javaScriptEnabled = true WebView(it).apply { 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); }
Publica tu integración
Para que tu app pueda usar Google Pay en Android WebView, debes completar la guía para publicar tu integración.