IAP Sample Specification - ONE-store/inapp-sdk GitHub Wiki

< μ°Έκ³  >

λ³Έ λ¬Έμ„œλŠ” μ›μŠ€ν† μ–΄ 인앱 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
}
⚠️ **GitHub.com Fallback** ⚠️