Skip to content

IAP Sample Specification

flyljj edited this page May 11, 2018 · 7 revisions

< 참고 >

본 문서는 원스토어 인앱 SDK v16(API v4)에 대한 가이드 문서입니다. 최신 원스토어 인앱 SDK v17(API v5)에 대한 가이드 문서는 원스토어 개발자센터에서 제공되고 있습니다.

최신 인앱 SDK v17 가이드 문서 링크 : https://dev.onestore.co.kr/devpoc/reference/view/IAP_v17


Command 명세

request_product_info

Request 애플리케이션 ID "OA12345678"가 판매 중인 모든 인앱상품 조회

{
	"method" : "request_product_info", 
	"param" : {
		"appid" : "OA12345678", 
		"product_id" : []
	}
}

성공 Response

  • 상품 조회 성공
  • 판매 중인 상품 개수 1개
  • 상품 아이디: 0000000020
  • 상품 타입: 아이템 건당-소멸성
  • 상품 가격: 1100원
{
	"api_version" : "4",
	"identifier" : "1234567890", 
	"method" : "check_purchasability", 
	"result" : {
		"code" : "0000",
		"count" : 1,
		"product" : [ {
			"id" : "0000000020",
			"name": "개발자센터 인앱 상품명", 
			"type": "one-time", 
			"kind": "consumable", 
			"price": 1100
		} ]
	} 
}

실패 Response

{
	"api_version" : "4",
	"identifier" : "1234567890", 
	"method" : "request_product_info",
	"result" : {
		"code" : "3004",
		"message" : "요청에 실패하였습니다."
	} 
}

request_purchase_history

Request

예시: 단일 상품 조회

애플리케이션 ID가 "OA12345678"이고 구매한 상품 ID가 "0000000020"인 상품 유효성 조회 요청
{
	"method" : "request_purchase_history", 
	"param" : {
		"appid" : "OA12345678", 
		"product_id" : ["0000000020"] 
	}
}

예시: 다중 상품 조회

애플리케이션 ID가 "OA12345678"이고 구매한 상품 ID가 "0000000020", "0000000021"인 상품 유효성 조회 요청
{
	"method" : "request_purchase_history", 
	"param" : {
		"appid" : "OA12345678",
		"product_id" : [
			"0000000020", 
			"0000000021" ]
	} 
}

예시: 모든 상품 조회

애플리케이션 ID가 "OA12345678"인 상품의 모든 구매내역 조회
{
	"method" : "request_purchase_history",
	"param" : {
		"appid" : "OA12345678"
	} 
}

성공 Response

  • 조회 요청 성공
  • 구매한 상품 상품 개수: 2개
  • 상품 아이디: 0000000020
    • 상품 타입: 아이템 건당-소멸성 상품
    • 사용 가능한 상품 개수: 0개
    • 구매 일: 2012년 12월 1일 (종료 일은 의미 없음)
    • 조회 상태: 0000000020 구매 상품 유효성 조회 – 기간 만료
  • 상품 아이디: 0000000021
    • 상품 타입: 월정액 상품
    • 사용 가능한 상품 개수: 365 (월정액은 의미 없음)
    • 구매 일: 2015년 12월 1일
    • 종료 일: 2015년 12월 31일
    • 조회 상태: 0000000021 구매 상품 유효성 조회 – 인증 성공
{
	"api_version" : "4",
	"identifier" : "1234567890",
	"result" : {
		"code" : "0000",
		"message" : "요청이 성공적으로 처리되었습니다.", 
		"count" : 2,
		"product" : [ {
			"id" : "0000000020",
			"name": "2011 프로야구 아이템 1000원", 
			"type": "one-time",
			"kind": "consumable",
			"validity": 0,
			"price": 1100,
			"startDate": "20121201173841",
			"endDate": "20121201173841",
			"status": {
				"code" : "PH02", 
				"message": "사용 기간이 만료되었습니다. 계속 이용을 원하시는 경우 재구매가 필요합니다."
			}
		},{
			"id" : "0000000021",
			"name": "자동 결제 상품",
			"type": "auto-renewal-month ",
			"validity": 365,
			"price": 1100,
			"startDate": "20151201173841",
			"endDate": "20151231235959",
			"status": {
				"code" : "PH00", 
				"message": "아이템 인증에 성공하였습니다."
			} 
		}]
	}
}

실패 Response

{
	"api_version" : "4", 
	"identifier" : "1234567890",
	"method" : "request_purchase_history", 
	"result" : {
		"code" : "3004",
		"message" : "요청에 실패하였습니다." 
	}
}

check_purchasability

Request

애플리케이션 ID가 "OA12345678"이고 구매한 상품 ID가 "0000000020"인 상품 구매 가능 여부 조회 요청
{
	"method" : "check_purchasability", 
	"param" : {
		"appid" : "OA12345678", 
		"product_id" : ["0000000020"] 
	}
}   

성공 Response

상품 ID "0000000020" 은 추가 구매 불가능
{
	"api_version" : "4",
	"identifier" : "1234567890", 
	"method" : "check_purchasability", 
	"result" : {
		"code" : "0000",
		"message" : "요청이 성공적으로 처리되었습니다.", 
		"count" : 1,
		"product" : [ {
			"id" : "0000000020", 
			"purchasability": false 
		}]
	} 
}   

실패 Response

{
	"api_version" : "4",
	"identifier" : "1234567890", 
	"method" : "check_purchasability", 
	"result" : {
		"code" : "3004",
		"message" : "요청에 실패하였습니다." 
	}
}   

change_product_properties

Request

애플리케이션 ID 가 "OA12345678" 이고 가입한 월정액 상품 ID 가 "0000000021" 인 월정액 가입 해지 요청
{
	"method" : "change_product_properties", 
	"param" : {
		"appid" : "OA12345678", 
		"product_id" : ["0000000021"], 
		"action" : "cancel_subscription" 
	} 
}   

성공 Response

  • 가입 해지 요청 성공
  • 상품 아이디: 0000000021
  • 상품 상태: 0000000021 상품 – 해지 성공
{
	"api_version" : "4",
	"identifier" : "1234567890",
	"method" : "change_product_properties", 
	"result" : {
		"code" : "0000",
		"message" : "요청이 성공적으로 처리되었습니다.", 
		"count" : 1,
		"product" : [ {
			"id" : "0000000020",
			"status" : {
				"code": "CS00",
				"message" : "월별 자동결제 상품 해지가 정상처리 되었습니다."
			} 
		}]
	}
}   

실패 Response

{
	"api_version" : "4",
	"identifier" : "1234567890",
	"method" : " change_product_properties",
	"result" : {
		"code" : "3004",
		"message" : "요청에 실패하였습니다."
	} 
}   

TID 구매이력 조회

Request

20160715에 OA00027256 상품에서 구매한 12313와 12324 번 결제 건에 대한 조회
http://iap.tstore.co.kr:8090/billIntf/billinglog/billloginquiry.action?DATE=20160715&APPID=OA00027256&TIDCNT=2&TID=12313|12324

성공 Response

T데이터쿠폰5G 상품 2개 구매
<GXG_RES type="BillingLog">
	<result>
		<status>0</status>
		<detail>0000</detail>
		<message>정상적으로 조회 됐습니다.</message>
		<appid>OA00285882</appid>
		<count>2</count>
		<billing_log>
			<item>
				<tid>20160709191552028174</tid
				<product_id>0901247195</product_id>
				<log_time>20160709191641</log_time>
				<charging_id>11111111111</charging_id>
				<charge_amount>33,000</charge_amount>
				<detail_pname>T데이터쿠폰 5GB</detail_pname>
				<bp_info/>
				<tcash_flag>N</tcash_flag>
			</item>
			<item>
				<tid>20160709191649869595</tid>
				<product_id>0901247195</product_id>
				<log_time>20160709191733</log_time>
				<charging_id>11111111111</charging_id>
				<charge_amount>33,000</charge_amount>
				<detail_pname>T데이터쿠폰 5GB</detail_pname>
				<bp_info/>
				<tcash_flag>N</tcash_flag>
			</item>
		</billing_log>
	</result>
</GXG_RES>

실패 Response

<GXG_RES type="BillingLog">
	<result>
		<status>9</status>
		<detail>9100</detail>
		<message>요청하신 조건과 일치하는 정보가 없습니다.</message>
		<appid>OA00285882</appid>
		<count>0</count>
	</result>
</GXG_RES>

전자 영수증 검증 API

Request

10분전에 OA00012345 상품에서 구매한 TSTORE0004_20150515102510XXXXXXXXXXXXXXX 번 결제 건에 대한 조회
{
	"txid":"TSTORE0004_20150515102510XXXXXXXXXXXXXXX",
	"appid":"OA00012345",
	"signdata":"MIIH7QYJKoZIhvcNAQcCoIIH3jCCB9oCAQExDzANBglghkgBZQMEAMIIH7QYJKdDFDFFEFEFEFoZIhvcNAQcCoIIH3jCCB9oCAQExDzANBglghkgBZQMEA" 
}  

성공 Response

{
	"status" : 0,
	"detail" : "0000",
	"message" : "정상검증완료", 
	"count" : 1,
	"product" : [{
		"log_time" : "20120321154451", 
		"appid" : "OA12345678", 
		"product_id" : "0900012345", 
		"charge_amount" : 1000,
		"tid" : "201012226_01047637315_00000239",
		"detail_pname" : "커스텀 상품명",
		"bp_info" : "X"}]
}

실패 Response

{
	"message":"전자 영수증 데이터가 유효하지 않습니다.", 
	"detail":"9113",
	"status":9
}
Clone this wiki locally