在 Android WebView 中添加对 Google Pay 的支持

2025年5月28日

您的 Android 应用是否使用 WebView 内嵌了网页结账流程?

我们很高兴地宣布,Android WebView 现已支持 Google Pay。从 WebView 137 版开始提供此功能。


如何在 Android WebView 中使用 Google Pay?

该解决方案使用 Payment Request API,该 API 允许在网站嵌入到 WebView 中时启动 Android 付款应用。

从 Google Play 服务 25.18.30(今日推出)开始,Google Pay 将触发原生付款界面,这意味着,该界面在 WebView 中触发时,用户设备令牌将可用于付款流程。


我的应用需要进行哪些更改?

由于默认情况下 Payment Request API 在 WebView 中处于禁用状态,因此需要实施以下简单更改:

添加(或更新)build 依赖项:

androidx.webkit:webkit:1.14.0
Kotlin

将以下 queries 代码添加至您的 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>
XML

为应用中使用的 WebView 启用 Payment Request API。确保使用正确的 import 语句。无需进行其他与 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)
    }
)
Kotlin

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);
}
Java

最后,请务必使用 Pay & Wallet Console 申请应用的生产访问权限:

An approved Android app integration
经批准的 Android 应用集成

在 Android 应用中解锁无缝支付体验

有了 Android WebView 对 Google Pay 的支持,当您在应用中嵌入网页结账功能时,可以向 Android 用户提供 Google Pay。如需实施方面的更多帮助,请登录 Google Pay & Wallet Console 创建支持服务工单。此外,您还可以通过 Discord 上的 #payments 频道加入开发者社区。

在 X 上关注 @GooglePayDevs,了解未来的更新内容。如果您有任何疑问,请在推文中标记 @GooglePayDevs,并加入 #AskGooglePayDevs 标签。