신뢰할 수 있는 웹 활동에서 Play 결제 사용

Google Play 결제는 앱이 Play 스토어에서 디지털 상품 및 정기 결제를 판매할 수 있도록 지원할 뿐만 아니라 카탈로그, 가격, 정기 결제를 관리하는 도구, 유용한 보고서, 사용자가 이미 익숙한 Play 스토어 기반 결제 절차를 제공합니다. 또한 Play 스토어에 게시되어 디지털 상품을 판매하는 애플리케이션에도 요구사항이 적용됩니다.

Chrome 88은 Android에서 오리진 트라이얼과 함께 출시됩니다. 이 트라이얼을 사용하면 신뢰할 수 있는 웹 활동Payment Request APIDigital Goods API와 통합하여 Google Play 결제를 통한 구매 흐름을 구현할 수 있습니다. 이 오리진 트라이얼은 ChromeOS 버전 89에서도 사용할 수 있을 것으로 예상됩니다.

Android 앱과의 통합을 쉽게 하기 위해 신뢰할 수 있는 웹 활동팀은 android-browser-helper에 확장 프로그램 라이브러리를 도입합니다. 이 가이드에서는 이 라이브러리를 기존 애플리케이션에 통합하는 데 필요한 변경사항을 보여줍니다.

참고: 이 도움말에서는 Android 앱의 통합을 다룹니다. Bubblewrap을 사용하여 애플리케이션을 빌드하는 경우 이 도구를 사용하여 앱을 업데이트할 수 있습니다. Bubblewrap의 구현은 이 문제에서 추적됩니다. 이 가이드는 Bubblewrap을 사용하여 앱을 업데이트하지 않는 사용자를 대상으로 합니다.

build.gradle

결제 확장 프로그램 라이브러리 자체는 android-browser-helper의 버전 2.1.0에 종속됩니다. 애플리케이션이 이 버전 이상의 버전을 사용하고 있는지 확인하세요.

결제 확장 프로그램 라이브러리의 구현 선언도 추가해야 합니다.

dependencies {
    ...
    implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
    implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}

DelegationService.java

android-browser-helper는 앱에서 직접 사용할 수 있는 기본 DelegationService와 함께 제공됩니다. 결제 확장 프로그램을 사용하려면 약간 맞춤설정된 버전의 DelegationService가 필요합니다.

이렇게 하려면 원래 클래스를 확장하고 onCreate()를 재정의하는 자체 DelegationService 클래스를 만들어야 합니다. onCreate() 내에서 애플리케이션을 Digital Goods API의 핸들러로 등록하는 단일 메서드 호출을 추가해야 합니다.

package com.example.yourapp;

import com.google.androidbrowserhelper.playbilling.digitalgoods.DigitalGoodsRequestHandler;
import com.google.androidbrowserhelper.trusted.DelegationService;

public class DelegationService
        extends com.google.androidbrowserhelper.trusted.DelegationService {
    @Override
    public void onCreate() {
        super.onCreate();
        registerExtraCommandHandler(new DigitalGoodsRequestHandler(getApplicationContext()));
    }
}

AndroidManifest.xml

Android 매니페스트에서 위임 라이브러리 참조를 자체 구현으로 변경해야 합니다. 상응하는 service 선언에서 com.google.androidbrowserhelper.trusted.DelegationService를 새로 만든 클래스로 바꿉니다.

<service
    android:name=".DelegationService"
    android:exported="true">

    <intent-filter>
        <action android:name="android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</service>

또한 결제 라이브러리에는 Android 매니페스트에 추가해야 하는 두 가지 새로운 구성요소가 도입됩니다. 하나는 브라우저에서 연결하여 애플리케이션이 결제를 지원하는지 확인할 수 있는 서비스이고 다른 하나는 결제 흐름 자체를 처리하는 활동입니다.

<activity
    android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|keyboard|orientation|screenLayout|screenSize"
    android:exported="true">
    <intent-filter>
        <action android:name="org.chromium.intent.action.PAY" />
    </intent-filter>
    <meta-data
        android:name="org.chromium.default_payment_method_name"
        android:value="https://play.google.com/billing" />
</activity>
<!-- This service checks who calls it at runtime. -->
<service
    android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentService"
    android:exported="true" >
    <intent-filter>
        <action android:name="org.chromium.intent.action.IS_READY_TO_PAY" />
    </intent-filter>
</service>

Digital Goods API 및 Google Play 결제 자세히 알아보기

이 도움말에서는 신뢰할 수 있는 웹 활동을 사용하는 Android 애플리케이션에 특히 필요한 단계를 설명했지만, Google Play 결제 API에는 자체 용어가 있으며 클라이언트 및 백엔드 구성요소가 포함되어 있습니다. 프로덕션 애플리케이션에 통합하기 전에 Google Play 결제Digital Goods API 문서를 읽고 개념을 이해하는 것이 좋습니다.