您的 Android 应用是否使用 WebView 内嵌了网页结账流程?
我们很高兴地宣布,Android WebView 现已支持 Google Pay。从 WebView 137 版开始提供此功能。
该解决方案使用 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
将以下 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>
为应用中使用的 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)
}
)
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);
}
最后,请务必使用 Pay & Wallet Console 申请应用的生产访问权限:
有了 Android WebView 对 Google Pay 的支持,当您在应用中嵌入网页结账功能时,可以向 Android 用户提供 Google Pay。如需实施方面的更多帮助,请登录 Google Pay & Wallet Console 创建支持服务工单。此外,您还可以通过 Discord 上的 #payments 频道加入开发者社区。
在 X 上关注 @GooglePayDevs,了解未来的更新内容。如果您有任何疑问,请在推文中标记 @GooglePayDevs,并加入 #AskGooglePayDevs 标签。