developer.android.com/google/play/billing/integrate
앱에 Google Play 결제 라이브러리 통합 | Google Play 결제 시스템 | Android Developers
중요: 앱이 현재 AIDL을 사용하여 Google Play 결제 시스템을 통합하는 경우 AIDL에서 Google Play 결제 라이브러리로 이전하는 데 필요한 단계에 관한 대략적인 개요는 AIDL에서 Google Play 결제 라이브러리
developer.android.com
구매 흐름 (일회성 구매 또는 정기결제)
- 사용자에게 구입할 수 있는 항목을 보여줌
- 사용자가 구매를 수락할 수 있도록 구매흐름 시작
- 서버에서 구매 인증
- 사용자에게 콘텐츠를 제공하고 콘텐츠 전송 확인(선택적으로 사용자가 항목을 다시 구입할 수 있도록 항목을 소비됨으로 표시)
정기결제 상태
- 활성 : 사용자가 콘텐츠 사용에 문제가 없는 양호한 상태, 정기 결제 액세스 가능
- 취소됨 : 사용자가 정기결제를 취소했지만 만료전까지 액세스 가능
- 유예 기간 중 : 사용자에게 결제 문제가 발생했지만 Google에서 결제 수단을 다시 시도하는 동안 사용자가 계속 액세스할 수 있음
- 보류 중 : 사용자에게 결제 문제가 발생하여 Google에서 결제 수단을 다시 시도하는 동안 사용자가 더 이상 액세스할 수 없음 일시 중지됨 사용자가 액세스를 일시 중지했으며 다시 시작할 때까지 액세스할 수 없음
- 만료됨 : 사용자가 정기 결제를 취소했으며 정기 결제 액세스 권한을 잃음. 만료 시 사용자가 이탈한 것으로 간주
구매 토큰 및 주문 ID
- Google Play에서는 구매토큰과 주문 ID를 사용하여 제품 및 거래를 추적
- 사용자는 주문 ID 또는 거래의 고유 ID가 포함된 거래 영수증을 이메일로 받음,
- 일회성 제품 구매시, 최초 정기 결제 구매 및 이후의 반복적인 자동갱신시에도 고유 주문 ID가 포함된 이메일을 받음
- 구매토큰
- Google Play에서 제품에 대한 구매자의 자격을 나타내는 문자열
- Google 사용자가 SKU로 표시되는 특정 제품과 관련하여 자격이 있음을 나타냄
- Google Play Developer API와 함께 사용할 수 있음.
- 사용자가 구매 흐름을 완료할 때만 생성됨
- 일회성 제품의 경우 모든 구매시 새 토큰이 생성됨
- 주문ID
- Google Play에서 금융 거래를 나타내는 문자열, 구매자에게 이메일로 전송되는 영수증
- 판매 및 판매 대금 보고서에도 사용됨. 주문 ID를 사용하여 환불을 관리할 수 있음
- 금융 거래가 발생할 때마다 생성됨
- 대부분의 구매시 새 주문 ID 생성됨(프로모션 코드에 설명된 대로 사용자에게 비용이 청구되지 않는 경우 예외)
- 정기결제
- 최초 구매 시 구매 토큰 및 주문 ID 생성
- 이후 계속되는 각 결제 기간에 구매토큰은 동일하게 유지되며 새로운 주문 ID가 발급
- 업그레이드, 다운그레이드, 대체 및 재가입은 모두 새로운 구매 토큰 및 주문 ID를 생성
- 정기 결제 업그레이드, 다운그레이드 및 기타 정기 결제 구매 흐름은 이전 구매 토큰을 대체해야하는 구매토큰을 생성, Google Play Developer API의 linkedPurchaseToken필드에 표시되는 구매 토큰을 무효화해야 함
- 정기 결제 갱신 주문 번호에는 특정 갱신 인스턴스를 나타내는 정수가 추가로 포함. (ex, 최초 정기 결제 주문 ID : GPA.1234-5678.9012-34567, 두번째 갱신 : GPA.1234-5678-9012-34567..1 등)
정기 결제 수명 주기 처리
- 정기 결제는 전체 수명주기 동안 다양한 상태 변경을 거칠 수 있으며 앱은 각 변경에 응답해야 함
BillingClient.queryPurchases() | Purchases.subscriptions:get | |||||
상태 | 반환됩니까? | isAutoRenewing | 반환됩니까? | expiryTimeMillis | paymentState | autoRenewing |
활성 | 예 | 참 | 예 | 향후 일정 | 1(결제 수신) | 참 |
취소됨 | 예 | 거짓 | 예 | 향후 일정 | 1(결제 수신) | 거짓 |
유예 기간 중 | 예 | 참 | 예 | 향후 일정 | 0(결제 대기 중) | 참 |
보류 중 | 아니요 | N/A | 예 | 과거 | 0(결제 대기 중) | 참 |
일시중지됨 | 아니요 | N/A | 예 | 과거 | 1(결제 수신) | 참 |
만료됨 | 아니요 | N/A | 예 | 과거 | 1(결제 수신) | 거짓 |
'Effective * > Effective Android' 카테고리의 다른 글
[Google Play 인앱 개념] 계정보류/복원/일시정지/재구독 (1) | 2021.01.20 |
---|---|
[웹뷰] 활용 (0) | 2021.01.16 |
[Google Play 인앱 구현] 결제 라이브러리 통합 2 (0) | 2021.01.15 |
[웹뷰] 기본 속성 (0) | 2021.01.13 |