Android 앱에 WebView를 이용한 삽입된 결제 프로세스가 있나요?
Android WebView 내에서 Google Pay를 지원하게 되었음을 알려드립니다. 이 기능은 WebView 버전 137부터 사용할 수 있습니다.
이 솔루션은 WebView 내에 웹사이트가 삽입되어 있을 때에도 Android 결제 앱을 실행할 수 있도록 해주는 Payment Request API를 사용합니다.
오늘부터 제공되는 Google Play 서비스 25.18.30 버전에서는 Google Pay가 기본 결제 시트를 트리거하고, WebView 내에서 Google Pay가 트리거되면 사용자 기기 토큰을 통해 결제가 가능합니다.
WebView에서는 기본적으로 Payment Request API를 사용하지 않으므로, 다음과 같은 간단한 변경이 필요합니다.
빌드 종속 항목을 추가 또는 업데이트하세요.
androidx.webkit:webkit:1.14.0-rc01
AndroidManifest.xml에 아래 queries
태그를 추가하세요.
<!--
Android 앱 또는 SDK에서 Chromium이 정의한 PAY, IS_READY_TO_PAY,
작업을 실행할 수 있도록 허용
-->
<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 {
// 자바스크립트 및 결제 요청을 허용하도록 WebView 설정 업데이트
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();
// 자바스크립트 및 결제 요청을 허용하도록 WebView 설정 업데이트
webSettings.setJavaScriptEnabled(true);
if (WebViewFeature.isFeatureSupported(WebViewFeature.PAYMENT_REQUEST)) {
WebSettingsCompat.setPaymentRequestEnabled(webSettings, true);
}
마지막으로 Pay & Wallet 콘솔을 사용하여 앱의 프로덕션 액세스를 요청하세요.
Android WebView 내에서 Google Pay를 지원하면, 웹 결제 화면을 앱에 삽입할 때도 Android 사용자에게 Google Pay를 제공할 수 있습니다. 구현과 관련해 도움이 필요하다면 Google Pay & Wallet 콘솔에 로그인하여 지원 티켓을 생성하세요. 또한 Discord의 #payments 채널에서 개발자 커뮤니티에 참여할 수 있습니다.
향후 업데이트 소식을 확인하려면 X에서 @GooglePayDevs를 팔로우하세요. 질문이 있다면 @GooglePayDevs를 태그하고 트윗에 #AskGooglePayDevs를 포함해 주세요.