인앱결제 레퍼런스

서버 응답코드

  • 원스토어 서비스에서 애플리케이션으로 전송되는 응답코드는 <표 1>에 정의되어 있습니다.

  • AIDL과 인앱결제 API V5(SDK V17)를 적용한 앱에서는 <표 1>의 모든 응답코드에 대해 처리를 해야 합니다. <표 1> 인앱결제 API 호출 시 서버 응답코드

isBillingSupported() - 지원여부 조회

  • 이 메서드는 원스토어 인앱결제 지원여부를 조회합니다.

  • 원스토어 인앱결제를 이용하기 전 해당 메서드를 호출하여 상태 확인을 할 수 있습니다. <표 2> isBillingSupported 요청에 대한 응답 데이터

getProductDetails() - 상품정보 조회

  • 이 메서드는 애플리케이션 ID(AID)에 해당하는 상품 상세정보를 반환합니다.

  • 전달되는 productDetailList 키에 맵핑되는 String ArrayList 의 상세 정보는 <표 4>에 정리되어 있습니다. <표 3> getProductDetails 요청에 대한 응답 데이터

    <표 4> getProductDetails 요청에 대한 응답 데이터 중 productDetailList 에 대한 JSON 필드 설명

getPurchaseIntent() - 구매 요청

  • 이 메서드는 구매요청을 위한 메서드입니다. 응답값으로 구매 진행을 위한 purchaseIntent를 반환합니다.

    <표 5> getPurchaseIntent 요청에 대한 응답 데이터

    앱에서 purchaseIntent를 이용하여 Activity.startActivityForResult()를 호출하면, 원스토어 결제 프로세스를 진행합니다. 결제가 완료되면 구매 요청에 대한 최종 응답을 Intent로 받게됩니다.

    <표 6> 구매(결제) 완료 시 onActivityResult()로 전달되는 Intent 필드

    <표 7> 구매 완료 시 onActivityResult()로 전달되는 Intent 필드 내 purchaseData 필드 상세 내용

getPurchaseIntentExtraParam() - 구매 요청

  • 이 메서드를 이용하면, 구매요청 시 <표 8>에 정의되어 있는 내용들을 추가로 전달 할 수 있습니다. 추가 파라미터인 gameUserId와 promotionApplicable 항목의 경우, 프로모션의 참여를 제한(ex. 중복 참여 제한)하는 용도로 사용됩니다. 이 메서드의 응답값으로 구매 진행을 위한 purchaseIntent를 반환합니다.

    <표 8> Extra Bundle data

    gameUserId, promotionApplicable 파라미터는 Optional 값으로 원스토어 사업부서 담당자와 프로모션에 대해 사전협의가 된 상태에서만 사용하여야 하며, 일반적인 경우에는 값을 보내지 않아도 됩니다. 또한, 사전협의가 되어 값을 보낼 경우에도 개인정보보호 이슈가 없도록 gameUserId는 hash된 unique한 값으로 전송하여야 합니다.

    앱에서 purchaseIntent를 이용하여 Activity.startActivityForResult()를 호출하면, 원스토어가 결제 프로세스를 진행합니다. 결제가 완료될 경우 구매 요청에 대한 최종 응답을 Intent로 받게됩니다. 응답 Intent에 반환되는 데이터는 <표 10>에 정리되어 있습니다.

    <표 9> getPurchaseIntentExtraParam 요청에 대한 응답 데이터

    <표 10> 구매 완료 시 onActivityResult()로 전달되는 Intent 필드 내 purchaseData 필드 상세 내용

    <표 11> 구매 완료 시 onActivityResult()로 전달되는 Intent 필드 내 purchaseData 필드 상세 내용

getLoginIntent() - 로그인 요청

  • 원스토어 로그인을 위한 메서드입니다. <표 1>의 응답코드 중 RESULT_NEED_LOGIN 응답을 받을 경우, 원스토어 로그인을 유도해야 합니다.

  • 응답값으로 원스토어 로그인을 위한 loginIntent 를 반환합니다.

    <표 12> getLoginIntent 요청에 대한 응답 데이터

    앱에서 loginIntent를 이용하여 Activity.startActivityForResult()를 호출하면, 원스토어 로그인 프로세스를 진행합니다. 로그인이 완료될 경우 로그인 요청에 대한 최종 응답을 받게됩니다. 응답 데이터는 <표 13>에 정리되어 있습니다.

    <표 13> 로그인 완료 시 onActivityResult()로 응답 값

getPurchases() - 구매내역 조회

  • 고객의 구매내역을 조회하는 메서드입니다.

  • 고객의 구매내역 중 소비(consume) 처리가 되지 않은 관리형 상품(managed product) 목록과 유효한 월정액 상품(subscription) 목록을 반환합니다.

    <표 14> getPurchases 요청에 대한 응답 데이터

    <표 15> getPurchase 요청에 대한 응답 데이터 중 purchaseDetailList 에 대한 JSON 필드 상세 내용

consumePurchase() - 상품소비 요청

  • 관리형 상품(managed product)에 대한 소비(consume) 처리를 요청하는 메서드입니다. 상품 소비 요청 시에는 구매정보에 포함되어 있는 purchaseId를 이용하며, 소비 처리에 성공할 경우 응답 데이터에 해당 purchaseId 값을 반환합니다. <표 16> consumePurchase 요청에 대한 응답 데이터

manageRecurringProduct() - 월정액 상품 상태변경 요청

  • 월정액 상품(subscription)에 대한 '해지 예약' 및 '해지 예약 취소'를 요청하는 메서드입니다. 요청 시에는 구매정보에 포함되어 있는 purchaseId를 이용하며, 요청이 처리된 경우 응답 데이터에 해당 purchaseId 값을 반환합니다. <표 17> manageRecurringProduct 요청에 대한 응답 데이터

Last updated