안드로이드 앱에서 구독상품 결제를 구현하면서 결제 상태 변경 시 '실시간 개발자 알림' 구현을 위해 작성하는 가이드이다.
Google Play Developer API는 Android에서 Google Play 결제 라이브러리를 보완하는 서버 간 API입니다.
이 API는 구매를 안전하게 인증하고 사용자에게 환불을 처리해 주는 등 Google Play 결제 라이브러리에서는 사용할 수 없는 기능을 제공합니다.
먼저, Google Play Developer API 프로젝트를 생성하고 연결한다. (가이드 참고)
- 소유자 계정으로 Google Play Console에 로그인 한다.
- 설정 > API 액세스 로 이동한다.
실시간 개발자 알림 구성
실시간 개발자 알림(RTDN)은 앱 내에서 사용자의 자격이 변경될 때마다 Google의 알림을 수신하는 메커니즘입니다. RTDN은
Google Cloud Pub/Sub를 활용합니다. 이를 통해 설정된 URL로 푸시되거나 클라이언트 라이브러리를 사용하여 폴링되는 데이터를 수신할 수 있습니다. 이러한 알림을 사용하면 Google Play Developer API를 폴링할 필요 없이 정기 결제 상태 변경에 즉시 대응할 수 있습니다. Google Play Developer API를 비효율적으로 사용하면 API 할당량 제한이 초래될 수 있습니다.
아래에서 GCP의 Pub/Sub을 구성하고 Google Play Console의 앱과 연결하는 방법을 알아본다.
1. Cloud Pub/Sub 설정
GCP의 Pub/Sub 서비스를 생성한다. (Pub/Sub 아키텍처를 모른다면 참고)
계정과 프로젝트는 어떤 것에 해도 상관은 없지만, 가급적이면 Google Play Console의 API 액세스에 연결된 프로젝트에 구성하는게 좋겠다.
https://console.cloud.google.com/cloudpubsub
- 주제(Topic)를 만든다.
https://cloud.google.com/pubsub/docs/publish-receive-messages-console?hl=ko#create_a_topic - 주제에 게시 권한을 부여한다.(참고)
Cloud Pub/Sub를 사용하려면 주제에 알림을 게시하는 권한을 Google Play에 부여해야 한다. - 구독을 생성 및 추가한다.
주제 만들기와 구독 추가, 그리고 실행해 보는 방법 참고 https://cloud.google.com/pubsub/docs/publish-receive-messages-console?hl=ko#create_a_topic
2. 앱에 실시간 개발자 알림 사용 설정
- Google Play Console을 엽니다.
- 앱을 선택합니다.
- 수익 창출 > 수익 창출 설정으로 이동합니다.
- 페이지 상단의 실시간 개발자 알림 섹션으로 스크롤합니다.
- 주제 이름 입력란에 이전에 구성한 전체 Cloud Pub/Sub 주제 이름을 입력합니다. 주제 이름의 형식은 projects/{project_id}/topics/{topic_name}이어야 합니다. 여기에서 project_id는 프로젝트의 고유 식별자이고 topic_name은 이전에 만든 주제의 이름입니다.
- 테스트 알림 보내기를 클릭하여 테스트 메시지를 보냅니다. 테스트 게시를 실행하면 모두 제대로 설정되고 구성되었는지 확인할 수 있습니다. 테스트 게시에 성공하면 테스트 게시에 성공했다는 메시지가 표시됩니다. 이 주제의 정기 결제에 연결했다면 테스트 메시지를 받아야 합니다.게시에 실패하면 오류가 표시됩니다. 주제 이름이 올바르고 google-play-developer-notifications@system.gserviceaccount.com 서비스 계정이 주제에 대한 Pub/Sub 게시자 액세스 권한을 보유하고 있는지 확인하세요.
- 풀 정기 결제의 경우 Cloud Console에서 정기 결제로 이동하고 메시지 보기를 클릭한 다음 메시지 가져오기를 진행합니다. Cloud Pub/Sub의 반복 전송을 방지하기 위해 가져온 모든 메시지를 확인해야 합니다. 푸시 정기 결제의 경우 테스트 메시지가 푸시 엔드포인트로 전달되었는지 확인합니다. 성공하는 경우 응답 코드가 메시지 확인 역할을 합니다.
- 변경사항 저장을 클릭합니다.
다음 단계
- Pub/Sub 클라이언트 라이브러리에서 선택한 언어로 Pub/Sub를 시작합니다.
- 이 페이지에서 논의한 개념을 더 자세히 알고 싶다면 게시자와 구독자 가이드를 참조하세요.
- Pub/Sub에 대한 자세한 개요는 Pub/Sub란 무엇인가요?를 참조하세요.
[참고] https://developer.android.google.cn/google/play/billing/getting-ready?hl=ko#dev-api
'개발 > 안드로이드' 카테고리의 다른 글
Google Play 결제 라이브러리 4에서 5로 업그레이드 (0) | 2022.07.06 |
---|---|
Firebase DynamicLink 오류(삼성브라우저에서) (0) | 2022.06.28 |
[오류] SDK 31 에서 PendingIntent 이슈 (0) | 2022.03.03 |
[오류] firebaseinstanceid: token retrieval failed: service_not_available. will retry token retrieval (0) | 2022.02.22 |
OnlyVerticalSwipeRefreshLayout (0) | 2022.02.21 |