NHN Cloud In-App Purchase(이하 NHN Cloud IAP)는 주요 서비스 플랫폼(Apple App Store, Google Play, ONE Store)을 아우르는 통합 인앱 결제 서비스입니다.
NHN Cloud IAP는 다음과 같은 기능을 제공합니다.
플랫폼 | 스토어 |
---|---|
Android | Google Play Store |
Android | ONE store |
iOS | Apple App Store |
Store | 스토어 상품유형 | NHN Cloud IAP 상품유형 |
---|---|---|
Google Play Store | One-time, Subscriptions | CONSUMABLE, AUTO_SUBSCRIPTION |
App Store | Consumable, Auto-Renewable | CONSUMABLE, AUTO_SUBSCRIPTION |
ONE Store | Managed product | CONSUMABLE |
용어 | 설명 |
---|---|
AppKey | NHN Cloud 사용자 프로젝트와 상품간 1:1 매칭키. 프로젝트당 하나의 IAP용 AppKey를 발급함 |
스토어(Store) | Apple App Store, Google Play Store 같은 앱을 판매하는 곳 |
결제내역(Payment) | 사용자가 결제한 내역 |
결제요청(Purchase) | 앱 내에서 혹은 스토어에서 아이템을 구매함 |
결제소비(Consume) | 사용자에게 아이템을 지급한 후 결제를 소비하는 것 |
Payment Access Token | 사용자 애플리케이션 서버가 결제를 소비할 때 사용하는 인증토큰 |
IAP 서비스는 다음 그림과 같이 IAP SDK, User Application Server, IAP Server, Store 4가지로 구성됩니다.
컴포넌트 | 설명 |
---|---|
NHN Cloud IAP SDK | IAP Android SDK입니다. 인앱 결제를 위하여 사용자ID 등록, 결제요청을 수행합니다. 결제 수행시 스토어(Google Play Store, Apple App Store등)의 인앱 결제 화면으로 이동합니다. |
User Application Server | 사용자 애플리케이션 서버입니다. IAP 서버를 통하여 클라이언트가 요청한 결제내역을 확인한 후 결제소비를 진행하고 아이템 전달을 수행합니다. |
User Application Client | 사용자 애플리케이션에 서버가 존재하지 않는다면, 애플리케이션의 클라이언트에서 결제소비를 진행하고 아이템에 대한 권한을 부여하게 됩니다. |
IAP Server | NHN Cloud에서 제공하는 인앱 결제 서버입니다. |
Store | Google Store, Apple App Store 등의 다양한 스토어입니다. 플랫폼별 스토어는 IAP 서버와 연동되어 있습니다. |
Step | Description |
---|---|
[1] | 결제 사용자 ID를 등록합니다. 결제 사용자는 개발사에서 사용자를 식별하고 아이템을 지급하는 대상이며 Google play나 App Store 계정이 아닙니다. [참조] API Step Android : InternalInAppPurchase.InAppPurchase.registerUserId iOS : TIAPurchase registerUserId: error: |
[2] | 클라이언트에서 결제를 요청합니다. [참조] API Step Android : InternalInAppPurchase..InAppPurchases.requestPurchase iOS : TIAPurchase startPurchaseWithViewController: itemId: completionHandler |
[3] | 스토어에서 결제를 진행합니다. |
[4] | 스토어에서 결제를 마치고 결제 결과를 전달받습니다. 전달받은 결과를 이용해 User Application Server에서 item consume 진행을 합니다. [주의] 애플리케이션 서버가 존재 하지 않는 모델은 결제 소비를 클라이언트에서 직접 검증 할 수 있으나, 보안성 확보를 위해 Server To Server로 결제 소비 후 아이템에 대한 권한을 부여하는 것을 강력하게 권장 합니다. |
[4-1] | 스토어에서 전달받은 결과를 통해 IAP Server에 Consume 요청을 합니다. |
[5] | Consume을 성공하면 사용자에게 item을 전달합니다. |
[6] | 결제를 완료합니다. |