코딩하는 일용직 노동자

안드로이드 인앱결제를 위한 환경셋팅 본문

안드로이드

안드로이드 인앱결제를 위한 환경셋팅

bacass 2021. 9. 26. 01:04

서비스중인 앱에 구글 인앱상품을 만들고 결제기능을 앱에 추가하는 업무를 맡아 작업하면서 생각보다 구글 결제를 셋팅하는게 까다롭다는것을 느꼈습니다.
구글링을 해보면 BillingClient 를 이용해 결제를 시도하는 소스는 많은데 막상 테스트를 해보니 결제가 되지 않고 결제거부가 되었습니다.
분명히 앱의 인앱상품을 생성해서 등록을 해놨는데도 결제가 실패되었습니다.

이번 포스팅에서는 구글결제(Billing)을 구현하기 위해 플레이스토어 콘솔과 구글 클라우드플랫폼 에서 셋팅하는 것을 정리해보았습니다.


#1 앱등록
만약 등록한 앱이 Billing 권한이 없다면 
구글 플레이스토어 콘솔에 들어가서 [수익 창출] > [제품] > [인앱 상품] 을 들어가보면 아직 인앱 상품이 없다는 메세지가 보입니다.


우선 인앱상품을 설정하기 위해선 Billing 권한이 설정된 앱을 등록해야 합니다.
build.gradle 파일에 아래와 같은 내용이 추가되어 있어야 합니다.

dependencies {
    ...
    implementation "com.android.billingclient:billing:4.0.0"
}


그리고 매니페스트파일에 구글 Billing 권한이 있어야 합니다.

<uses-permission android:name="com.android.vending.BILLING" />


#2 실시간 개발자 알림 구성
구글 플레이스토어 콘솔에서 인앱결제 아이템을 만들기 위해 [수익 창출 설정]이 되어야 합니다.

우선 앱이 등록되어 있는 구글 플레이스토어 콘솔에서 좌측 메뉴에 [수익 창출] > [수익 창출 설정] 을 확인합니다.
여기서 [주제 이름]을 입력칸의 설명을 보면 아래처럼 표시되어 있습니다.
"Cloud Pub/Sub 주제 이름은 projects/{프로젝트_ID}/topics/{주제_이름} 형식이어야 합니다."

주제 이름을 입력하려면 먼저 자체 Google Cloud Platform(GCP) 프로젝트를 사용하여 프로젝트들 등록하고 Cloud Pub/Sub 에서 주제를 설정해야 합니다.
자! 이제 구글 클라우드플랫폼으로 이동해서 셋팅을 해줍니다.

#3 결제프로필 설정
결제프로필 메뉴에서 사업자의 정보와 은행정보를 입력해줍니다.

[설정 관리] 와 [결제 수단 관리] 메뉴를 작성해주어야 합니다. 은행 정보를 등록하면 1~2일 이내에 구글이 입금을 해주는데 입금받은 금액을 이곳에서 다시 입력해주면 승인이 됩니다.


#4 Cloud Pub/Sub 설정
Google Cloud Console을 엽니다.
프로젝트를 선택하거나, 프로젝트가 없으면 생성한 후 왼쪽 탐색에서 게시/구독을 클릭합니다.
Pub/Sub 메뉴에서 [주제 만들기] 를 눌러서 주제를 생성합니다.
주제를 생성하면 플레이스토어 콘솔의 [수익 창출 설정] 메뉴에서 봤던 
projects/{프로젝트_ID}/topics/{주제_이름} 형식의 주제이름이 생성됩니다.
이것을 복사해서 [수익 창출 설정]의 [주제 이름] 입력칸에 넣고 저장을 눌러줍니다.

주제 만들기 를 누른다.
영문 소문자로 아이디를 만들면 된다.
주제가 생성되었다.
주제 이름을 복사해와서 입력한 후 저장을 누른다.


#5 서비스 계정 추가
구글 클라우드플랫폼 Pub/Sub 에서 생성한 주제를 클릭해보면 브라우저 우측에 [구성원 추가] 버튼이 보입니다.
여기서 아래의 서비스 계정을 추가하여 Pub/Sub 게시자 역할을 부여합니다.

google-play-developer-notifications@system.gserviceaccount.com

구성원에 google-play-developer-notifications@system.gserviceaccount.com 을 추가하고 게시/구독 게시자로 역할지정해준다.
게시/구독 게시자로 등록되었다.



#6 인앱상품 만들기
구글 플레이스토어 콘솔에서 해당앱으로 들어가 
[수익 창출] > [제품] > [인앱 상품] 메뉴에서 [상품 만들기] 버튼을 눌러 인앱 상품을 등록해줍니다.
이때 만드는 제품ID가 나중에 결제 소스를 구현할때 사용되는 sku_id 가 됩니다.

상품 만들기 버튼을 누른다.
인앱 상품을 만든다.



#7 라이선스 테스트
구글 플레이스토어 콘솔에서 [설정] > [라이선스 테스트] 메뉴에 들어가 테스터를 등록해줍니다.
인앱결제 테스트를 할때 사용할 개발자의 계정들을 등록해주면 됩니다.
그리고 [라이선스 응답] 은 LICENSED 로 선택하면 정상동작하는 인앱결제 테스트가 가능합니다.

테스트할 계정을 등록해준다.



그리고 다시 앱의 설정화면으로 가서 [수익 창출 설정] 메뉴에서 [테스트 알림 보내기]를 눌러줍니다.


이정도면 구글 인앱 Billing 기능을 이용하기 위해 구글 플레이스토어 콘솔과  구글 클라우드플랫폼 에서 해야할 설정들은 다 된것입니다.

이제 결제기능을 구현한 앱을 등록해서 테스트 해보시면 됩니다.