인 - 앱 결제 버전 3 API는 쉽게 당신이 당신의 응용 프로그램에 인 - 앱 결제를 통합 할 수 있습니다. 이 버전의 특징은 개선 된 동기 구매 흐름, 쉽게 소비 제품의 소유권을 추적 할 수있는 API 및 응용 프로그램 내 구입 데이터의 로컬 캐싱 (가) 있습니다.
Product Types
당신은이 제품의 종류, 상품, 가격, 설명, 등, 구글 플레이 개발자 콘솔을 사용하여 제품을 정의합니다. 자세한 내용은 인 - 앱 결제 관리를 참조하십시오.버전 3 API는 관리되는 응용 프로그램 내 제품 및 구독을 지원합니다.
Managed In-app Products
관리되는 응용 프로그램 내 제품은 자신의 소유권 정보가 구글 플레이에 의해 추적 및 관리가 항목입니다. 사용자가 관리되는 응용 프로그램 내 아이템을 구입하면, 구글은 상점에게 사용자별로 각 항목에 대한 구매 정보를 재생합니다. 이것은 나중에 구글이 특정 사용자가 구매 한 상품의 상태를 복원 할 수있는 시간에 재생 쿼리 할 수 있습니다. 그들은 장치를 변경하면, 사용자가 응용 프로그램을 제거하거나해도이 정보는 구글 플레이 서버에 영구적이다.
당신은 버전 3 API를 사용하는 경우, 당신은 또한 응용 프로그램 내에서 항목을 관리 사용할 수 있습니다. 일반적으로 (예 : 게임 중 통화, 연료, 또는 마법의 주문 같은) 여러 번 구입 할 수있는 항목에 대한 소비를 구현하는 것입니다. 일단 당신이 항목을 소비 할 때까지 관리 항목이 구글 플레이에 소비 요청을 보내, 다시 구입할 수 없습니다, 구입했습니다. - 응용 제품 소비에 대한 자세한 내용을 보려면, 항목 사용을 참조하십시오
Subscriptions
가입하면 매월 또는 매년 반복 청구하여 응용 프로그램 내에서 사용자에게 콘텐츠, 서비스 또는 기능을 판매 할 수 앱내 결제에서 제공하는 제품의 유형입니다. 당신은 응용 프로그램이나 게임의 모든 유형에서, 디지털 콘텐츠의 거의 모든 유형에 대한 구독을 판매 할 수 있습니다. 구독이 작동하는 방식을 이해하려면, 인 - 앱 결제 구독을 참조하십시오.
Important: Unlike in-app products, subscriptions cannot be consumed.
Purchasing Items

Figure 1. The basic sequence for a purchase request.
인앱결제 3의 일반적인 구매 흐름
- application 은 용하는 인 - 앱 결제 API의 대상 버전이 지원되는지 확인하는 isBillingSupported 요청을 Google Play 에 을 보냅니다. (버전확인단계)
- application 이 시작되거나 사용자가 로그인하면, 사용자가 소유하는 어떤 항목을 결정하는 구글 플레이에 확인하는 좋은 방법입니다. 사용자의 응용 프로그램 내 구입을 조회하려면,
getPurchases요청을 보냅니다.요청이 성공적이면, 구글 Play를 구매 한 품목, 개별 구매 상세 목록 및 구매에 대한 서명리스트 제품 ID 목록을 포함하는Bundle을반환한다. - 보통, 당신은 구입에 사용할 수있는 제품의 사용자에게 알리는 것이 좋습니다. 당신이 구글 플레이에 정의 된 응용 프로그램 내 제품의 세부 사항을 조회하려면, 응용 프로그램
getSkuDetails요청을 보낼 수 있습니다. 당신은 쿼리 요청에 제품 ID의 목록을 지정해야합니다. 요청이 성공하면, 구글의 플레이는 제품의 가격, 제목, 설명 및 구매 유형 등 제품의 세부 사항을 포함하는Bundle반환합니다. - 응용 제품이 사용자가 소유하지 않은 경우, 당신은 그것을 구매를 시작할 수 있습니다.구매 요청을 시작하려면 응용 프로그램이 다른 매개 변수와 함께 구매하는 항목의 제품 ID를 지정 getBuyIntent 요청을 보냅니다. 당신은 개발자 콘솔에서 새 응용 프로그램 내 제품을 만들 때 제품 ID를 기록한다.
- 구글 플레이는 응용 프로그램 구입을위한 체크 아웃 UI를 시작하는 데 사용하는 PendingIntent가 포함 된 번들을 반환합니다.
- 응용 프로그램이 startIntentSenderForResult 메서드를 호출하여 보류중인 의도를 시작합니다.
- 체크 아웃 흐름 완료 (즉, 사용자가 성공적으로 아이템을 구매하거나 구매를 취소입니다), 구글의 플레이는는 onActivityResult 메서드에 응답 의도를 보낼 때.는 onActivityResult의 결과 코드는 구입이 성공 또는 취소 여부를 나타내는 결과 코드가 있습니다. 응답 의도는 구글이 유일하게이 구매 거래를 식별하는 플레이에 의해 생성 된 purchaseToken 문자열을 포함하여 구입 한 항목에 대한 정보가 포함되어 있습니다.의도는 개인 개발자 키로 서명 구입의 서명이 포함되어 있습니다.
To learn more about the Version 3 API calls and server responses, see In-app Billing Reference.
Consuming In-app Products
당신은 인앱 제품의 사용자의 소유권을 추적하기 위해 소비 메커니즘을 사용할 수 있습니다.
버전 3에서는 모든 인앱 제품을 관리합니다. 이것은 모든 앱에서 아이템 구매에 대한 사용자의 소유권이 구글 플레이에 의해 유지되는 것을 의미하고, 필요할 때 응용 프로그램은 사용자의 구매 정보를 조회 할 수 있습니다. 사용자가 성공적으로 앱에서 제품을 구입하면, 그 구매는 Google 플레이에 기록됩니다.앱에서 상품이 구입되면, 그것은 "소유"것으로 간주된다."소유"상태에있는 인앱 제품은 구글 플레이에서 구입 할 수 없습니다. 구글의 플레이를 다시 구입이 가능하게하기 전에 "소유"- 응용 제품에 대한 소비 요청을 보내야합니다.- 응용 제품을 소비하는 것은 "소유자가없는"상태로 복귀하고 이전의 구매 데이터를 삭제합니다.

Figure 2. The basic sequence for a consumption request.
제품의 사용자가 소유 한 목록을 검색하려면 응용 프로그램 getPurchases 구글이 플레이에 전화를 보냅니다. 응용 프로그램은 consumePurchase 호출을 전송하여 소비 요구를 할 수 있습니다. 요청 인수에, 당신은 그것을 구입 한 경우는 구글 플레이에서 얻은 - 응용 제품의 고유 한 purchaseToken 문자열을 지정해야합니다. 구글 플레이는 소비가 성공적으로 촬영 한 경우를 나타내는 상태 코드를 반환합니다.
Non-consumable and Consumable In-app Products
그것은 당신이 아닌 소모품이나 소모품으로 앱내 제품을 처리 할 것인지 여부를 결정하기 위해 당신에게 모든 것이 달렸습니다.
- Non-consumable Items
- 일반적으로, 당신은 당신의 응용 프로그램에서 한 번 구입하고 영구적 인 혜택을 제공 할 수있는 앱 제품에 대한 소비를 구현하지 않을 것입니다. 한 번 구입 한, 이러한 항목은 영구적으로 사용자의 Google 계정에 연결됩니다. 비 소모품 - 응용 제품의 예는 프리미엄 업그레이드 또는 수준의 팩입니다.
- Consumable items
- 반면에, 당신은 구입 여러 번 사용할 수 할 수있는 항목에 대한 소비를 구현할 수 있습니다. 일반적으로 이러한 항목은 특정 일시적인 효과를 제공합니다. 예를 들어, 사용자의 게임 내 캐릭터의 라이프 포인트를 얻을 수 있습니다 또는 자신의 인벤토리에 추가 금화를 얻을 수 있습니다. 응용 프로그램에서 구입 한 상품의 장점이나 효과를 분배하면 응용 프로그램 내 제품을 프로비저닝이라고합니다. 당신은 통제하고 인앱 제품이 사용자에게 프로비저닝하는 방법을 추적 할 책임이 있습니다.
Important: Before provisioning the consumable in-app product in your application, you must send a consumption request to Google Play and receive a successful response indicating that the consumption was recorded.
Managing consumable purchases in your application
여기에 소비 - 응용 제품을 구입하기위한 기본 흐름은 :
- getBuyIntent 호출을 구매 흐름을 시작합니다
- 구매가 성공적으로 완료하면 응답 Bundlefrom 구글 플레이를 나타내는 받기
- 구입에 성공하면, consumePurchase를 호출하여 구입을 소비
- 소비가 성공적으로 완료 여부를 나타내는 구글 플레이에서 응답 코드를 얻을.
- 소비가 성공하면 제공 응용 프로그램의 제품입니다.
사용자가 응용 프로그램에서 시작하거나 로그인 할 때 사용자가 응용 프로그램 내 제품 미결제 소모품을 소유하고있는 경우 그 후, 당신은 확인해야합니다, 그래서 경우, 해당 항목을 소비하고 제공해야합니다. 응용 프로그램에서 소비 인앱 제품을 구현하는 경우 다음은 권장되는 응용 프로그램 시작 흐름은 다음과 같습니다
- 사용자의 소유 인앱 제품을 조회 할 getPurchases 요청을 보냅니다.
- 응용 제품 소모품을가있는 경우, consumePurchase를 호출하여 항목을 사용합니다. 응용 프로그램이 소모품에 대한 구매 주문을 완료 되었으나, 중지 또는 응용 프로그램이 소비 요청을 보낼 수있는 기회가되기 전에 분리있어 수도 있기 때문에이 단계가 필요합니다.
- 소비가 성공적으로 완료 여부를 나타내는 구글 플레이에서 응답 코드를 얻을.
- 소비가 성공하면 제공 응용 프로그램의 제품입니다.
Local Caching
구글은 클라이언트가 현재 장치에 로컬로 결제 정보 - 응용 프로그램 캐시 플레이하기 때문에, 당신은 getPurchases 호출을 통해 예를 들어, 더 자주이 정보를 쿼리하는 버전 3 API를 사용할 수 있습니다.API의 이전 버전과는 달리, 여러 버전 3 API 호출이 캐시 조회를 통해 대신 크게 API의 응답 시간을 단축 구글 플레이에 대한 네트워크 연결을 통해 서비스됩니다.


