봄날은 갔다. 이제 그 정신으로 공부하자

Google Play 결제 시스템 - 준비하기 본문

학습

Google Play 결제 시스템 - 준비하기

길재의 그 정신으로 공부하자 2020. 12. 14. 11:00

해당 글에서는 앱에서 제품을 판매하기 전에 실행해야하는 설정 단계를 나열하고 설명합니다

개략적으로 이 설정에는 개발자 계정 생성, 판매하려는 제품 생성 및 구성, 제품 판매 및 관리에 사용하는 API 사용 설정 및 구성이 포함됩니다. 또한 본 문서에서는 제품 상태가 변경될 때마나 알림을 받도록 실시간 개발자 알림을 구성하는 방법에 대해서도 설명합니다.

 

참고 사이트: https://developer.android.com/google/play/billing/getting-ready?hl=ko

 

Google Play 개발자 계정 설정

Google Play에서 유료 앱 및 인앱 구매를 판매하려면 Google 결제 센터(https://pay.google.com/gp/w/u/0/home/signup?sctid=3981006162382065)에서 프로필을 설정한 후 이 프로필을 Google Play 개발자 계정에 연결해야 합니다.

프로필을 게정에 연결하응 방법 또는 이미 연결된 계정 및 프로필이 있는지 확인하는 방법을 알아보려면, 결제 프로필에 Google play 개발자 계정 연결(https://support.google.com/googleplay/android-developer/answer/3092739?hl=ko)을 참고하세요.

 

Google Play Console에서 결제 관련 기능 사용 설정

개발자 계정을 설정한 후에는 Google Play 결제 라이브러리가 포함된 앱 버전을 게시해야 합니다.

이 단계는 판매하려는 제품을 구성하는 등 Google Play Console에서 결제 관련 기능을 사용 설정하는데 필요합니다.

 

라이브러리 종속 항목 추가

Google Play 결제 시스템을 통합하려면 먼저 앱의 Google Play 결제 라이브러리에 종속 항목을 추가합니다.

이 라이브러리는 Google Play에 연결하는 Android API 액세스 권한을 제공합니다.

여기에서 구매 정보에 액세스하고 구매 관련 업데이트를 쿼리하며 사용자에게 새로 구매할지 묻는 메시지를 표시할 수 있습니다.

Google Play 결제 라이브리러를 사용하기위해서는 아래와 같이 build.gradle 파일에 종속 항목을 추가해야 합니다.

dependencies {
    def billing_version = "3.0.0"
    implementation 'com.android.billingclient:billing:$billing_version'
}

 

Kotlin을 사용한다면 Play 결제 라이브러리 KTX 모듈에 확장과 코루틴 지원이 포함되어 있으므로 Google Play 결제 시스템을 

사용할 때 직관적인 kotlin을 작성할 수 있습니다. 프로젝트에서 이러한 확장을 포함라혀면 다음과 같이 앱의 build.gradle파일

에 아래와 같이 종속 항목을 추가합니다.

dependencies {
    def billing_version = "3.0.0"
    implementation 'com.android.billingclient:billing-ktx:$billing_version'
}

 

앱 업로드

라이브러리를 앱에 추가한 후에는 앱을 빌드하고 게시합니다.

 

제품 생성 및 구성

앱에 Google Play 결제 기능을 사용 설정한 후 판매할 제품을 구성해야 합니다.

일회성 제품 및 정기 결제를 생성하는 단계와 비슷합니다.

각각의 제품마다 고유한 제품 ID, 제목, 설명 및 가격 정보를 제공해야 합니다. 정기 결제의 경우 갱신 기간, 무료 체험판을 제공할지 여부,

정기 결제에 신규 할인 혜택을 포함할지 여부 등의 정보가 추가로 필요합니다.

Google Play Console은 제품을 관리하는데 사용할 수 있는 웹 인터페이스를 제공합니다.

웹 인터페이스의 대안으로 Google Play Developer API의 inappproducts(https://developers.google.com/android-publisher/api-ref/rest/v3/inappproducts?hl=ko) REST 리소스를 사용하여 제품을 관리할 수도 있습니다.

 

Google Play Developer API 구성

Google Play Developer API는 Android에서 Google Play 결제 라이브러리를 보완하는 서버간 API 입니다.

이 API는 구매를 안전하게 인증하고 사용자에게 환불을 처리해 주는 등 Google Play 결제 라이브러리에서는 사용할 수 없는 기능을 제공합니다.

 

Google Play 결제 시스템을 앱에 통합하는 과정의 일부로 Google Play Console을 통해 Google Play Developer API 액세스를 구성해야 합니다.

 

Google Play Developer API에 대한 액세스를 구성한 후에는 결제 관련 기능에 액세스하는 데 필요한 재무 데이터보기 권한을 부여했는지 확인합니다. 권한 구성에 관한 자세한 내용과 권장사항에 관한 정보는 개발자 계정 사용차 추가 및 권한 관리(https://support.google.com/googleplay/android-developer/answer/2528691?hl=ko) 참고

 

실시간 개발자 알림 구성(RTDN)

실시간 개발자 알림(RTDN)은 앱 내에서 사용자의 가격이 변경될 때마다 Google의 알림을 수신하는 매커니즘 입니다.

RTDN은 Google Cloud Pub/Sub(https://cloud.google.com/pubsub/docs/overview?hl=ko)를 활용합니다.

이를 통해 설정된 URL로 푸시되거나 클라이언트 라이브러리를 사용하여 폴링되는 데이터를 수신할 수 있습니다. 

이러한 알림을 사용하면 Google Play Developer API를 폴링할 필요 없이 정기 결제 상태 변경에 즉시 대응할 수 있습니다.

Google Play Developer API를 비효율적으로 사용하면 API 할당량 제한이 초래될 수 있습니다.

 

Cloud Pub/Sub는 독립적인 애플리케이션 간에 메시지를 주고 받는데 사용할 수 있는 완전 관리형 실시간 메시지 서비스 입니다.

Google Play에서는 Cloud Pub/Sub를 사용하여 정기 결제하는 Topic에 푸시 알림을 게시합니다.

 

알림을 받으려면 Topic에 전송된 메시지를 사용할 수 있는 백엔드서버를 만들어야 합니다. 그러면 서버는 등록된 Endpoint에 대한 HTTPS 요청에 응답하거나 Cloud Pub/Sub 클라이언트 라이브러리를 사용하여 이러한 메시지를 사용할 수 있으며 라이브러리는 다양한 언어로 제공됩니다.

 

Cloud Pub/Sub 설정

실시간 개발자 알림을 사용 설정하려면 먼저 자체 Google Cloud Platform(GCP) 프로젝트를 사용하여 Cloud Pub/Sub를 설정한 후 앱의 알림을 사용 설정해야 합니다. Cloud Pub/Sub를 사용하려면 Cloud Pub/Sub API가 사용 설정된 GCP 프로젝트가 있어야 합니다. 

Topic 만들기

알림 수신을 시작하려면 Google Play에서 알림을 게시할 Topic을 만들어야 합니다.

Topic 생성 방법은 Topic 생성 가이드(https://cloud.google.com/pubsub/docs/quickstart-console?hl=ko#create_a_topic) 참고하세요.

Pub/Sub 정기 결제 만들기

Topic에 게시된 메시지를 받으려면 Topic에 관한 Pub/Sub 정기 결제를 만들어야 합니다.

Pub/Sub 정기 결제를 만들려면 아래 단계를 참고하면 됩니다.

  1. Cloud Pub/Sub 정기 결제 사용자 가이드(https://cloud.google.com/pubsub/docs/subscriber?hl=ko)를 읽고 정기 결제를 Push 정기 결제로 구성할지 또는 Pull 정기 결제로 구성할지 결정합니다.
    1. Push 정기 결제를 사용하면 Cloud Pub/Sub가 HTTPS 요청을 발급하여 보안 백엔드에 알림을 보낼 수 있습니다.
    2. Pull 정기 결제를 사용하려면 보안 백엔드 서버에서 Cloud Pub/Sub 서버에 메시지 가져오기 요청을 보내야 합니다.
  2. 정기 결제 추가(https://cloud.google.com/pubsub/docs/quickstart-console?hl=ko#add_a_subscription)의 안내에 따라 정기 결제를 만듭니다.

 

Topic에 게시 권한 부여

Cloud Pub/Sub를 사용하려면 Topic에 알림을 게시하는 권한을 Google Play에 부여해야 합니다.

  1. Google Cloud Console을 엽니다.
  2. 프로젝트를 선택한 후 왼쪽 탐색에서 "게시/구독"을 클릭합니다.
  3. Topic을 찾은 후 권한 세부정보를 엽니다.
  4. 서비스 계정 google-play-developer-notifications@system.gserviceaccount.com을 추가하여 "Pub/Sub 게시자 권한"을 부여합니다.
  5. "저장"을 클릭하여 Topic 설정을 완료합니다.

 

앱에 실시간 개발자 알림 사용 설정

앱에 실시간 개발자 알림을 사용 설정하는 방법은 아래와 같습니다.

  1. Google Play Console을 엽니다.
  2. 앱을 선택합니다.
  3. "개발 도구 > 서비스 및 API"로 이동합니다.
  4. 페이지 하단의 "실시간 개발자 알림" 섹션으로 스크롤 합니다.
  5. Topic Name 입력란에 이전에 구성한 전체 Cloud Pub/Sub Topic Name을 입력합니다.
  6. "테스트 메시지 보내기"를 클릭하여 테스트 메시지를 보냅니다. 테스트 게시를 실행하면 모두 제대로 설정되고 구성되었는지 확인이 가능합니다.
  7. "Topic Update"를 클립합니다.

구성 확인

실시간 개발자 알림을 받으려면 Cloud Pub/Sub Topic에 전송된 메시지를 사용할 수 있는 보안 백엔드 서버를 만들어야 합니다.

위에서 설명한대로 Google Play Colsole에서 "테스트 메시지 보내기" 버튼을 사용하여 구성을 테스트할 수 있습니다.

알림을 사용하도록 백엔드 서버를 구성하지 않았다면 gcloud 명령줄 도구를 사용하여 구성을 확인할 수 있습니다.

gcloud를 사용하여 메시지를 처리하는 방법에 관한 안내는 정기 결제에서 메시지 가져오기(https://cloud.google.com/pubsub/docs/quickstart-console?hl=ko#pull_the_message_from_the_subscription)를 참고하세요.

 

Comments