# 원스토어 인앱결제 버전 소개

### **원스토어 인앱결제 버전 종류** <a href="#id" id="id"></a>

* 원스토어 인앱결제 버전은 'API 버전'을 의미합니다.
* 원스토어 인앱결제에서 사용하는 다른 종류의 버전으로 'SDK 버전'이 있으며, 각각의 버전에 대한 상세한 설명은 아래와 같습니다.
  * API 버전 : 원스토어에서 인앱결제를 위해 사용하는 API 버전을 의미하며, 인앱결제 시스템의 큰 변경이 있을 경우 버전이 업그레이드됩니다. 본 문서는 API 버전 V5를 기준으로 작성되었으며, 'API V5'라고 부릅니다.
  *   SDK 버전 : 원스토어 인앱 SDK의 버전을 의미하며, 개선되는 내용의 영향도에 따라 버전을 변경합니다. 본 문서는 인앱 SDK V17.01.00을 기준으로 작성되었으며, 'SDK V17'로 칭합니다.

      |  API 버전 | SDK 버전                                                                  | 비고          |
      | ------- | ----------------------------------------------------------------------- | ----------- |
      | API V5  | <p>SDK V17.02.00<br>SDK V17.01.00</p>                                   | 최신 버전       |
      | API V4  | <p>SDK V16.04.xx<br>SDK V16.03.xx<br>SDK V16.02.xx<br>SDK V16.01.xx</p> | <p><br></p> |
      | API V3  | <p>SDK V15.xx.xx</p><p>.......</p>                                      | <p><br></p> |

### **원스토어 인앱결제 API V5(SDK V17)의 특징** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* API 버전은 개발사 애플리케이션의 'AndroidManifest.xml' 파일에 아래와 같이 명시되어야 합니다.
* 자세한 내용은 [인앱결제 적용을 위한 사전준비](undefined-3) 페이지의 'Android Manifest 파일 설정' 부분을 참고하시기 바랍니다.
*   API V5 (SDK V17)에서 개선된 사항은 다음과 같습니다.

    | 항목                        | 세부 개선 항목                                                   | 설 명                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |   |
    | ------------------------- | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
    | **API**                   | Consume 개념 도입                                              | 아이템 미지급 상황 발생 시 앱에서 복구할 수 있는 로직을 제공합니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |   |
    | Custom PID 지원             | 인앱상품 ID(PID)를 개발자가 직접 입력할 수 있어, 직관적인 PID로 생성하여 운영할 수 있습니다. |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |   |
    | 보편적인 인앱결제 인터페이스 제공        | 타 마켓향으로 개발한 앱을 코딩상의 큰 개발공수 없이 원스토어향으로 런칭할 수 있습니다.          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |   |
    | **결제 테스트 환경**             | 개발/상용 테스트 환경 분리 제공                                         | <p>개발사의 검증 환경과 동일 수준의 원스토어 결제환경을 제공합니다.</p><p>개발사의 개발환경에서는 원스토어 Sandbox와 연동하여 개발/테스트 할 수 있고, 개발사의 상용환경에서는 원스토어 상용환경에서 실결제를 해볼 수 있습니다.</p><p>원스토어 개발자센터에서 테스트 ID로 등록한 ID로 원스토어 로그인 후, 실결제한 경우, 개발자가 자유롭게 구매취소 가능합니다.</p><table><thead><tr><th>구분</th><th>개발자</th><th></th><th></th></tr></thead><tbody><tr><td>개발환경</td><td>상용환경</td><td></td><td></td></tr><tr><td>원스토어 결제환경</td><td><strong>Sandbox</strong></td><td>O</td><td>-</td></tr><tr><td><strong>상용환경 (실 결제)</strong></td><td>-</td><td>O</td><td></td></tr></tbody></table> |   |
    | 구분                        | 개발자                                                        |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |   |
    | 개발환경                      | 상용환경                                                       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |   |
    | 원스토어 결제환경                 | **Sandbox**                                                | O                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | - |
    | **상용환경 (실 결제)**           | -                                                          | O                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |   |
    | **결제창 UI**                | 전면/팝업 결제화면 선택 가능                                           | <p>전체 결제화면 또는 팝업 결제화면을 선택할 수 있습니다.<br>결제화면 설정은 <a href="undefined-3">인앱결제 적용을 위한 사전준비</a> 페이지의 'Android Manifest 파일 설정' 부분을 참고하시기 바랍니다.</p>                                                                                                                                                                                                                                                                                                                                                                                            |   |
    | **연동 방식**                 | IAP SDK, AIDL 선택 가능                                        | <p>기존의 SDK 방식 뿐만 아니라, AIDL를 이용하여 직접 OSS와 연동할 수 있습니다.<br>단, 원스토어 서비스(ONE store service, OSS) 앱이 설치되어 있지 않은 단말에서는 인앱결제가 정상적으로 동작하지 않습니다.<br>원스토어 서비스 앱 설치에 대한 내용은 <a href="undefined-3">인앱결제 적용을 위한 사전준비</a> 페이지의 '원스토어 앱 설치' 부분을 참고하시기 바랍니다.</p>                                                                                                                                                                                                                                                                                        |   |
    | **개발자센터**                 | 타 마켓 앱 상품 정보 크롤링 기능 개선                                     | 기 등록된 타 마켓 앱 상품을 원스토어에 간편하게 등록할 수 있습니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |   |
    | 타 마켓 인앱상품 정보 import 기능 제공 |                                                            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |   |
    | **인증센터**                  | OAuth 발급/인증/관리                                             | 개발자의 서버와 원스토어 인앱결제 서버 연동 시 데이터 보안을 강화하였습니다.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |   |
* API V4에서 제공하는 3가지 타입의 인앱상품은 API V5에서 두가지(관리형, 월정액)로 간소화됩니다.
* API V4의 월정액 상품은 API V5의 월정액 상품과 동일하며, 나머지 상품들은 API V5에서 관리형 상품으로 구현이 가능합니다.
*   인앱상품 종류에 대한 상세한 내용은 [인앱상품 종류 및 결제 프로세스](undefined-2) 페이지를 참고하시기 바랍니다.

    | API V4 | API V5     |
    | ------ | ---------- |
    | 영구성    | 관리형        |
    | 소멸성    |            |
    | 기간제    | 일, 주, 월, 년 |
    | 월정액    | 월정액        |

### **원스토어와 구글의 인앱결제 기능 비교** <a href="#id" id="id"></a>

| Function                      | 원스토어 IAP                                                 | Google Play IAB                                                                                            |
| ----------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| 서비스 초기화                       | 미제공                                                      | 미제공 (서비스 바인딩 구현)                                                                                           |
| 인앱결제 지원 여부 조회                 | isBillingSupported                                       | <p>isBillingSupported<br>isBillingSupportedExtraParams (VR 지원)</p>                                         |
| 인앱상품 정보 조회                    | getProductDetails                                        | getSkuDetails                                                                                              |
| 구매요청                          | <p>getPurchaseIntent<br>getPurchaseIntentExtraParams</p> | getBuyIntent                                                                                               |
| 구매가능 여부 조회                    | 미제공                                                      | 미제공                                                                                                        |
| 구매내역 조회                       | getPurchases                                             | <p>getPurchases : 구매 후 소비(consume)하지 않은 구매내역<br>getPurchasesHistory : 모든 내역(소비완료, 구매취소 등)을 포함한 최근 구매내역</p> |
| 월정액상품 상태변경 호출 (구글API와 역할이 다름) | manageRecurringProduct                                   | getBuyIntentToReplaceSkus                                                                                  |
| 인앱상품 소비(consume) 요청           | consumePurchase                                          | consumePurchase                                                                                            |
| 원스토어 구매 ID(purchaseId) 조회     | 미제공                                                      | 미제공                                                                                                        |
| 서비스 종료                        | 미제공                                                      | 미제공 (서비스 바인딩 구현)                                                                                           |
| 원스토어 로그인 요청                   | getLoginIntent                                           | 미제공                                                                                                        |

### **인앱버전 간 호환 불가 안내 (인앱결제 API V4 > API V5로 업그레이드 미지원)** <a href="#id-apiv4-greater-than-apiv5" id="id-apiv4-greater-than-apiv5"></a>

* 원스토어 인앱결제 API V5(SDK V17)는 이전 버전과 전혀 다른 구조로 설계되었기 때문에 하위 호환성이 없습니다.\
  따라서, 인앱결제 API V5(SDK V17)는 신규 상품을 등록할 경우에만 적용 가능합니다.
* 현재 판매하고 있는 상품이 API V4(SDK V16)를 적용한 경우, 해당 인앱버전으로 계속 상품을 업데이트하고 서비스하시면 됩니다.
* 원스토어는 인앱결제 API V4(SDK V16)에 대한 결제 서비스도 지속적으로 제공합니다.
* 개발사의 인프라가 API V4(SDK V16)에 최적화되어 있어 당장 새로운 환경으로 변경하기 힘들 경우, 유예기간 내에는 API V4(SDK V16)를 적용한 신규 상품을 등록하셔도 됩니다.\
  다만, 최신 인앱결제가 제공하는 다양하고 강력한 기능을 이용하기 위해 최신버전 인앱결제 API V5(SDK V17)를 적용하시는 것을 권장합니다.
