# 원스토어 인앱결제 API V5 (SDK V17) 안내 및 다운로드

### **개요** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

원스토어의 최신 인앱결제 API V5(SDK V17)가 출시되었습니다.\
보다 강력하고 다양한 기능을 지원하는 최신 버전을 적용해보세요.

이 페이지는 인앱결제 API V5(SDK v17)에 대한 안내 페이지로, API V4(SDK V16) 이하 버전과 호환되지 않습니다.\
인앱결제 API V4(SDK V16)에 대한 안내 및 다운로드는 [여기](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v16)를 클릭해주세요.\
If you are comfortable with English, please change the language to English from the upper right side in this page.

### **소개** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* #### [원스토어 인앱결제 소개](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/undefined)  <a href="#idapiv5sdkv17onestore-ying-yong-nei-zhi-fu-jian-jie-zhong-wen" id="idapiv5sdkv17onestore-ying-yong-nei-zhi-fu-jian-jie-zhong-wen"></a>
  * 원스토어 인앱결제란?
  * 권장 개발 환경
  * 용어(terminology)

### **버전**

* #### [원스토어 인앱결제 버전 소개](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/undefined-1) <a href="#idapiv5sdkv17onestore-ying-yong-nei-zhi-fu-ban-ben-zhong-wen" id="idapiv5sdkv17onestore-ying-yong-nei-zhi-fu-ban-ben-zhong-wen"></a>
  * 원스토어 인앱결제 버전 종류
  * 원스토어 인앱결제 API V5(SDK V17)의 특징
  * 원스토어와 구글의 인앱결제 기능 비교
  * 인앱버전 간 호환 불가 안내 (인앱결제 API V4 > API V5로 업그레이드 미지원)

### **상품종류 및 결제** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* #### [인앱상품의 종류 및 결제 프로세스](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/undefined-2) <a href="#idapiv5sdkv17-ying-yong-nei-zhi-fu-liu-cheng-zhong-wen" id="idapiv5sdkv17-ying-yong-nei-zhi-fu-liu-cheng-zhong-wen"></a>
  * 인앱상품의 종류
  * 인앱결제 프로세스
    * 원스토어 회원 로그인
      * 원스토어 앱을 실행하여 로그인 유도
      * getLoginIntent 사용하여 로그인 프로세스 호출
    * 인앱상품 구매
    * 인앱상품 소비(consume)
    * 월정액 상품 관리(상태변경)

### **사전준비** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* #### [인앱결제 적용을 위한 사전준비](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/undefined-3) <a href="#idapiv5sdkv17-shi-xian-zhun-bei-zhong-wen" id="idapiv5sdkv17-shi-xian-zhun-bei-zhong-wen"></a>
  * 애플리케이션 ID (AID) 발급하기
  * 정산 정보 등록
  * 인앱상품 등록
    * 인앱 상품 개별 등록하기
    * 인앱 상품 일괄 등록하기
  * 라이선스 키 및 OAuth 인증 정보 확인
  * 샘플 앱 다운로드
  * 인앱결제 라이브러리 추가
  * Android Manifest 파일 설정
  * 원스토어 앱 설치

### **구현** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* #### [인앱결제 구현](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/undefined-4) <a href="#idapiv5sdkv17-shi-xian-ying-yong-nei-zhi-fu-zhong-wen" id="idapiv5sdkv17-shi-xian-ying-yong-nei-zhi-fu-zhong-wen"></a>
  * 인앱결제 서비스 인터페이스 직접 구현하기
    * AIDL 바인딩하기
    * AIDL 바인딩 해제하기
    * 지원여부 조회하기 - isBillingSupported()
    * 상품정보 조회하기 - getProductDetails()
    * 구매 요청하기 - getPurchaseIntent()
    * 구매내역 조회하기 - getPurchases()
    * 상품 소비하기 - consumePurchase()
    * 월정액상품 상태변경 요청하기 - manageRecurringProduct()
    * 원스토어 로그인 요청하기 - getLoginIntent()
  * 인앱결제 SDK를 사용해 구현하기
    * SDK 내 주요 클래스 정보
    * 인앱결제 초기화 및 연결하기
    * 지원여부 조회하기
    * 상품정보 조회하기
    * 구매 요청하기
    * 구매내역 조회하기
    * 상품 소비하기
    * 월정액상품 상태변경 요청하기
    * 원스토어 로그인 요청하기
  * 소모성 형태의 상품 구현 시 주의할 점

### **테스트 및 보안** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* #### [결제 테스트 및 보안](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/undefined-5) <a href="#idapiv5sdkv17-zhi-fu-ce-shi-yu-an-quan-zhong-wen" id="idapiv5sdkv17-zhi-fu-ce-shi-yu-an-quan-zhong-wen"></a>
  * 인앱결제 테스트 프로세스
  * 인앱결제 테스트 화면
  * 테스트 ID 등록/관리
    * 테스트 ID 등록하기
    * 테스트 ID의 결제환경 변경하기
    * 테스트 ID 삭제하기 (개별 삭제, 일괄 삭제)
    * 테스트 ID 설정 복사
  * Sandbox 환경에서의 결제 테스트 (필수)
  * 상용테스트 환경에서의 결제 테스트 (선택)
  * 인앱결제 테스트 결과 확인 및 결제취소
    * Sandbox 환경
    * 상용테스트 환경
  * 인앱상품 구매내역 확인 및 구매취소 요청
  * 구매내역 확인하기
    * 구매취소 요청 경로
    * 구매취소 처리 프로세스 : 고객이 개발사 고객센터로 구매취소를 요청한 경우
    * 구매취소 처리 프로세스 : 고객이 원스토어 내 '판매자에게 문의하기' 기능을 통해 구매취소를 요청한 경우
  * 보안 및 인증
    * 인앱 결제의 보안
    * 원스토어 인앱결제 인증 방법

### **사례별 적용** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* #### [사례별 인앱결제 구현 방법](https://dev.onestore.co.kr/wiki/ko/doc/%EC%82%AC%EB%A1%80%EB%B3%84-%EC%9D%B8%EC%95%B1%EA%B2%B0%EC%A0%9C-%EA%B5%AC%ED%98%84-%EB%B0%A9%EB%B2%95-1572994.html)  <a href="#idapiv5sdkv17-bu-tong-lei-xing-shang-pin-shi-xian-ying-yong-nei-zhi-fu-zhi-nan-zhong-wen" id="idapiv5sdkv17-bu-tong-lei-xing-shang-pin-shi-xian-ying-yong-nei-zhi-fu-zhi-nan-zhong-wen"></a>
  * 관리형 상품(managed product)
  * 월정액 상품(subscription)
  * 영구성 상품과 기간제 상품
  * 결제를 완료하였으나 상품(서비스)이 미지급된 경우

### **레퍼런스** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* #### [인앱결제 레퍼런스](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/undefined-7) <a href="#idapiv5sdkv17-ying-yong-nei-zhi-fu-can-kao-zhong-wen" id="idapiv5sdkv17-ying-yong-nei-zhi-fu-can-kao-zhong-wen"></a>
  * 서버 응답코드
  * isBillingSupported() - 지원여부 조회
  * getProductDetails() - 상품정보 조회
  * getPurchaseIntent() - 구매 요청
  * getPurchaseIntentExtraParam() - 구매 요청
  * getLoginIntent() - 로그인 요청
  * getPurchases() - 구매내역 조회
  * consumePurchase() - 상품소비 요청
  * manageRecurringProduct() - 월정액 상품 상태변경 요청

### **서버 API** <a href="#id-apiv5-sdkv17-api" id="id-apiv5-sdkv17-api"></a>

* #### [인앱결제 서버 API](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/api) <a href="#idapiv5sdkv17apiapionestore-ying-yong-nei-zhi-fu-fu-wu-qi-api-zhong-wen" id="idapiv5sdkv17apiapionestore-ying-yong-nei-zhi-fu-fu-wu-qi-api-zhong-wen"></a>
  * 원스토어 OAuth v2
    * OAuth v2 개요OAuth API 상세
    * AccessToken 발급
    * AccessToken 발급 예시
  * 서버 API 상세
    * getPurchaseDetails (구매상품 상세조회)
    * getPurchaseDetailsByProductId (구매상품 상세조회)
    * getRecurringPurchaseDetails (월정액 구매상품 상세조회)
    * getLastRecurringPurchaseDetails (마지막 월정액 구매상품 상세조회)
    * manageRecurringPaymentStatus (자동결제해지/해지취소)
    * getVoidedPurchases (구매취소 내역조회)
    * consumePurchase (구매상품 소비)
  * Error Response

### **PNS** <a href="#id-apiv5-sdkv17-pns" id="id-apiv5-sdkv17-pns"></a>

* #### [PNS(Payment Notification Service) 활용](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/pns-payment-notification-service) <a href="#idapiv5sdkv17pnspaymentnotificationservicepnspaymentnotificationservicepnspaymentnotificationservice" id="idapiv5sdkv17pnspaymentnotificationservicepnspaymentnotificationservicepnspaymentnotificationservice"></a>
  * PNS(Payment Notification Service) 소개
  * PNS 수신 서버 URL 설정
  * PNS message format (원스토어 > 개발사 서버)
    * PNS message 예시
    * paymentMethod(원스토어 결제수단) 정의
    * Signature 검증 방법

### **UNITY 3D** <a href="#id-apiv5-sdkv17-unity3d" id="id-apiv5-sdkv17-unity3d"></a>

* #### [원스토어 인앱결제 Unity Plugin 가이드](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/unity-plugin) <a href="#idapiv5sdkv17unitypluginonestore-ying-yong-nei-zhi-fu-unityplugin-zhi-nan-zhong-wen" id="idapiv5sdkv17unitypluginonestore-ying-yong-nei-zhi-fu-unityplugin-zhi-nan-zhong-wen"></a>
  * 원스토어 Unity Plugin 소개
  * 원스토어 Unity Plugin
    * 원스토어 Unity Plugin 폴더 구성
    * 원스토어 Unity Plugin Sample 파일 구성
  * ONE store Unity Plugin 적용
  * ONE store Unity Plugin 레퍼런스
    * 기본 동작 및 주의 사항
    * Unity에서 Android 로 기본 Flow
    * Android 에서 Unity로 기본 Flow
  * 원스토어 Unity Plugin 메서드 및 동작 소개
    * Service Connect 버튼 클릭: 결제 초기화 (생성, 바인딩, 연결) 동작
    * isBillingSupported 버튼 클릭 : 인앱결제 API V5(SDK V17) 지원여부 확인에 대한 응답
    * getPurchase 버튼 클릭 : 인앱결제 API V5(SDK V17) 구매 내역 조회를 위한 메서드
    * getProductDetail 버튼 클릭 : 인앱결제 API V5(SDK V17) 상품 정보 조회를 위한 메서드
    * buyItem(Inapp) 버튼 클릭 : 인앱결제 API V5(SDK V17) 인앱 상품 구매
    * consume 버튼 클릭 : 인앱결제 API V5(SDK V17) 상품소비 호출 메서드
    * cancel/reactivate auto 버튼 클릭 : 월정액 상품(auto)의 상태변경(해지예약 / 해지예약 취소)을 호출하는 메서드
    * login 버튼 클릭 : 인앱결제 API V5(SDK V17) 로그인 요청을 위한 메서드
    * Destroy Service 버튼 클릭 : 인앱결제 API V5(SDK V17) 서비스 unbind
  * ONE store Unity Plugin 패키지 / Plugin 다운로드

### **다운로드** <a href="#id-apiv5-sdkv17" id="id-apiv5-sdkv17"></a>

* #### [다운로드](https://onestore-dev.gitbook.io/dev/tools/billing/old-version/v17/undefined-8)  <a href="#idapiv5sdkv17-xia-zai-zhong-wen" id="idapiv5sdkv17-xia-zai-zhong-wen"></a>
  * 원스토어 인앱결제 SDK V17 다운로드
