IAP SDK Reference - 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
ํ์ ์ฉ์ด | ์ค๋ช |
---|---|
AID | Application ID์ ์ค์๋ง๋ก, ์์คํ ์ด ๊ฐ๋ฐ์์ผํฐ์ Application์ ๋ฑ๋กํ๋ฉด ๊ทธ Application์ ๋ฐ๊ธ๋๋ ๊ณ ์ ํ ID ๊ฐ์ด๋ค. |
PID | Product ID์ ์ค์๋ง๋ก, ๋ฑ๋กํ Application์์ ํ๋งคํ In-App์ํ์ ์ถ๊ฐํ๋ฉด ๋ฐ๊ธ๋๋ ๊ณ ์ ํ In-App์ํ ID ๊ฐ์ด๋ค. |
MDN | Mobile Device Number์ ์ค์๋ง๋ก, ํด๋์ ํ ๋ฒํธ๋ฅผ ์๋ฏธํ๋ค. |
TID | TID ๋ IAP API ๋ฅผ ์ด์ฉํด ์์ฑํ์ง ์๊ณ App ๋ด์์ ์์ฒด์ ์ผ๋ก ์์ฑ ํด์ผ ํ๋ฉฐ TID ์กฐํ API ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, Uniqueness ๋ฅผ ๋ณด์ฅํด์ผ ํ๋ค. |
TxID | IAP์์ ์์ฑํ์ฌ ์ ์์์์ฆ๊ณผ ํจ๊ป ์ ๋ฌ๋๋ ์๋ณ์ |
์์คํ ์ด ๊ฐ๋ฐ์์ผํฐ IAP ๋ด์์ ํ๋งคํ ์ ์๋ In-App Product(์ธ์ฑ ์ํ)์ ์ ํ์ ๊ฑด๋น ์ํ, ๊ธฐ๊ฐ ์ํ, ์ ์ํ ์ ํ ์ํ ๋ฑ์ด ์์ผ๋ฉฐ, Application ๊ธฐํ ๋จ๊ณ์์ Application์ด ์ ๊ณตํ๊ณ ์ ํ๋ ์๋น์ค์ ํน์ฑ์ ๊ณ ๋ คํ์ฌ ์ ํฉํ In-App Product์ ์ ํ์ ์ ํํด์ผ ํ๋ค.
๊ตฌ๋งค ํ ์ฌ์ฉํ ์ ์๋ ์ํ์ ๊ฑด๋น ์ํ์ด๋ผ๊ณ ํ๋ฉฐ, ๊ตฌ๋งคํ ์ํ์ ์๊ตฌ ์ ์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์๊ตฌ์ฑ ์ํ๊ณผ ์๋ฉธ์ฑ ์ํ์ผ๋ก ๋๋๋ค.
๊ตฌ๋ถ | ์ค๋ช |
---|---|
์๊ตฌ์ฑ ์ํ(non-consumable) | ์ฌ์ฉ์๊ฐ ํ ๋ฒ ๊ตฌ๋งคํ๋ฉด ์๊ตฌ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์ํ ๋จ๋ง ๋ฒํธ(MDN)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ณต ๊ตฌ๋งค๊ฐ ๋ถ๊ฐ๋ฅ |
์๋ฉธ์ฑ ์ํ(consumable) | ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ ํ์(ํน์ ๊ฐ์)์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ํ ์์์ ์ผ๋ก, ๋ณ100๊ฐ, ๋ฌผ์ฝ 1000๊ฐ ๋ฑ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ํด๋น Item์ ์๋์ ์ฐจ๊ฐํ๋ฉด์ ์ฌ์ฉํ๋ ์ํ ์ ํ ์ค๋ณต ๊ตฌ๋งค๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ์ฐจ๊ฐ์ ๋ฐฉ๋ฒ๊ณผ ๊ด๋ฆฌ๋ Application ํน์ Application Server์์์์ฒด์ ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ฉฐ ์์คํ ์ด ๊ฐ๋ฐ์์ผํฐ IAP์์๋ ๊ด๋ จ ๊ธฐ๋ฅ์ ๋ฏธ ์ ๊ณต |
- ๊ตฌ๋งค ํ ์ง์ ๋ ๊ธฐ๊ฐ ๋์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ์ ๊ธฐ๊ฐ์ฑ ์ํ์ด๋ผ ํ๋ฉฐ, ์ํ์ ์ด์ฉ ๊ธฐ๊ฐ์ ๋ฐ๋ผ ์๋ ํ์ ๊ฐ์ด ๋๋๋ค.
- ํด๋น ๋ชจ๋ ์ํ์ ๋จ๋ง ๋ฒํธ(MDN)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ณต ๊ตฌ๋งค๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
- ๋จ, ๊ตฌ๋งคํ ์ํ์ ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋๋ ๊ฒฝ์ฐ ํด๋น ์ํ์ ๋ค์ ๊ตฌ๋งคํ ์ ์๋ค.
๊ตฌ๋ถ | ์ค๋ช |
---|---|
์ผ๊ฐ ์ํ (one-day-pass) | ์ด์ฉ ๊ฐ๋ฅํ ๊ธฐ๊ฐ์ด ๊ตฌ๋งคํ ์์ ๋ถํฐ 24์๊ฐ์ธ ์ํ |
์ฃผ๊ฐ ์ํ (one-week-pass) | ์ด์ฉ ๊ฐ๋ฅํ ๊ธฐ๊ฐ์ด ๊ตฌ๋งคํ ์์ ๋ถํฐ 7์ผ(168์๊ฐ)์ธ ์ํ |
์๊ฐ ์ํ (one-month-pass) | ์ด์ฉ ๊ฐ๋ฅํ ๊ธฐ๊ฐ์ด ๊ตฌ๋งคํ ์์ ๋ถํฐ 30์ผ์ธ ์ํ |
์์ ์ก ์ํ (auto-renewal-month) | ๋งค์ ์ ๊ธฐ์ ์ผ๋ก ๊ฒฐ์ ๋๋ ์ํ ์ฌ์ฉ์์ ์ํด ํด์ง ์์ฒญ์ด ์๋ ํ, ์ ๋จ์๋ก ์๋์ผ๋ก ๊ฒฐ์ ๋จ |
๋ฌด๋ฃ๋ก ๋ฐฐํฌ๋๋ ์ฒดํํ Application ๋ด์์ In-App ๊ฒฐ์ ๋ฅผ ํ๋ฉด, ์ ๋ฃ์ ์ ์ํ Application์ผ๋ก Lock ํด์ ๋ฅผ ํตํด ์ ํํ ์ ์๋ ์ํ
Legacy ์ํ ํ์ ์ ๋๋ค. ์ฌ์ฉ์ ๊ถํ์ง ์์ต๋๋ค.
IAP SDK๋ 7๊ฐ์ Java ํด๋์ค(๋๋ ์ธํฐํ์ด์ค)๋ค์ ์ ๊ณตํ๋ค.
์ปดํฌ๋ํธ | ์ค๋ช | ๋น๊ณ |
---|---|---|
IapPlugin | IAP ์๋ฒ์์ ์ํธ์์ฉ์ ์ํ ๊ธฐ๋ณธ IAP Plugin ํด๋์ค | |
IapPlugin.RequestCallback | ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ธฐ ์ํ ์ฝ๋ฐฑ ์ธํฐํ์ด์ค | |
IapPlugin.AbsRequestCallback | ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ธฐ ์ํ ์ฝ๋ฐฑ ์ถ์ํด๋์ค | ์ ๊ท |
Response | ์๋ต ๋ฐ์ดํฐ ํด๋์ค | ์ ๊ท |
ProcessType | ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์ ์ ์ | ์ ๊ท |
ReceiptVerificationTask.RequestCallback | ์์์ฆ ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ธฐ ์ํ ์ฝ๋ฐฑ ์ธํฐํ์ด์ค | ์ ๊ท |
ReceiptVerificationTask.AbsRequestCallback | ์์์ฆ ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ธฐ ์ํ ์ฝ๋ฐฑ ์ถ์ํด๋์ค | ์ ๊ท |
IapResponse | ์๋ต ๋ฐ์ดํฐ ์ธํฐํ์ด์ค |
[ํ] com.skplanet.dodo ํจํค์ง
์ฃผ์ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ ํญ๋ชฉ์ผ๋ก ์ค๋ช ํ๋ค.
column name | Description |
---|---|
Description | ํจ์์ ์ค๋ช |
Syntax | ํจ์์ ์ฝ๋ Signature |
Parameters | ํจ์์ ์ฌ์ฉ๋๋ ํ๋ผ๋ฏธํฐ ์ค๋ช |
Return | ํธ์ถ์ ๋ฆฌํด ๊ฐ |
Methods | Return | Note |
---|---|---|
getPlugin(Context context, String pluginmMode) | IapPlugin | |
exit() | void |
Description
๊ฒฐ์ ๋๋ ์กฐํ ์์ฒญ์ ์ํ, ์๋ก์ด IapPlugin ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๋ฐํํ๋ค.
ํธ์ถ์ ํ์ ํ๋ผ๋ฏธํฐ๋ก pluginmode ๋ฌธ์์ด์ ๋๊ฒจ์ค์ผ ํ๋ค. ์ ์์ ์ธ ๊ฐ์, ๋๊ฒจ์ฃผ์ง ์์ ๊ฒฝ์ฐ ์์ฉ ์๋ฒ(release) ๋ชจ๋๋ก ์ ํ ๋๋ค.
ํธ์ถ ์๋ง๋ค, ์๋ก ์์ฑํ ๊ฐ์ฒด๋ฅผ ๋๋ ค์ค๋ค. ๊ฐ ๊ฐ์ฒด๋ณ๋ก ์๋ฒ ์ ํ ์ด ๋ฌ๋ผ ์ง ์ ์๋ค.
Syntax
static final IapPlugin getPlugin(Context context, String pluginmMode)
Parameters
context
- Android Context, ํด๋น context์ ๊ฒฝ์ฐ ์๋๋ก์ด๋ Activity context๋ฅผ ๋ฃ๋ ๊ฒ์ ์ถ์ฒ
pluginmode
-
String, ์์ฉ/๊ฐ๋ฐ ์๋ฒ ์ค์ ์ฉ ๋ฌธ์์ด
-
development : ๊ฐ๋ฐ ์๋ฒ (IapPlugin.DEVELOPMENT_MODE)
-
release : ์์ฉ ์๋ฒ (IapPlugin.RELEASE_MODE)
Return
์ ์์ ์ผ๋ก ์ฑ๊ณต์์ IapPlugin
์ธ์คํด์ค๋ฅผ ๋ฆฌํด
Description
IapPlugin ์ธ์คํด์ค์ ๋ ์ด์ ์ ๊ทผํ์ง ์์ ๊ฒฝ์ฐ(ex. ๊ฐ๋ฐ์ฌ ์ฑ ์ข ๋ฃ ์) ํธ์ถ ํด์ฃผ์ด์ผ ํ๋ค. ๋ฏธํธ์ถ ์์๋ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ ํ ์๋ ์์ผ๋ฏ๋ก ํธ์ถ์ ๊ถ์ฅํ๋ค.
Syntax
void exit()
ํจ์ ํธ์ถ ์์, ๊ฐ๋ค์ ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ์ ์์ฒญ์ ํ๋ค. ์ง์ ์์ฒญ์ ๋ฌธ์ String์ผ๋ก ๋ง๋ค์ง ์๋๋ก ํด์ค๋ค.
Methods | Return | Note |
---|---|---|
sendPaymentRequest | String | ์ ๊ท |
sendCommandPurchaseHistory | String | ์ ๊ท |
sendCommandProductInfo | String | ์ ๊ท |
sendCommandCheckPurchasability | String | ์ ๊ท |
sendCommandChangeProductProperties | String | ์ ๊ท |
sendReceiptVerificationRequest | void | ์ ๊ท |
Description
๊ฒฐ์ ๋ฅผ ์์ฒญํ๋ค. ํธ์ถ ์์ ํ์ํ PaymentParams๊ฐ์ PaymentParams.Builder๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ ๋ค.
Syntax
String sendPaymentRequest(RequestCallback requestCallback, PaymentParams params)
Parameters
requestCallback
- ๊ฒฐ์ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
params
- PaymentParams.Builder๋ก ์์ฑ๋ ๊ฒฐ์ ์์ฒญ ๋ด์ฉ
- PaymentParams.Builder Parameter ์ค๋ช
Parameter | Type | Mandatory | Limit | sample | Description |
---|---|---|---|---|---|
appid | String | M | 10 | appid=OA12345678
|
Application ์์ด๋ (AID), ์๋ฌธ์ OA์ ์ซ์๋ฅผ ํฌํจํ 10๊ธ์ |
pId | String | M | 10 | product_id=0000000011
|
์ธ์ฑ ์ํID, 10์๋ฆฌ ์ซ์ |
productName | String | O | 50 | product_name=์ปค์คํ
์ธ์ฑ ์ํ๋ช
|
์ธ์ฑ ์ํ๋ช |
tid | String | O | 100 | tid=20150301_purchase_1110112
|
๊ฐ๋ฐ์ฌ ์์ฑํ๋ ID๊ฐ |
bpInfo | String | O | 1024 | `utm_source=onestore_utm_medium=iap | ์บ ํ์ธ ํต๊ณ ๋ฑ์ ์ํด์ ๊ฐ๋ฐ์ฌ๊ฐ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๋ ํ๊ทธ |
gameUserId | String | O | 1000 | gameUserId=223123124sadas
|
์์คํ ์ด ํ๋ก๋ชจ์
์ค๋ณต ์ฐธ์ฌ ๋ฐฉ์ง๋ฅผ ์ํ ๊ฐ์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์
์ฌ์ฉ์์ ๊ณ ์ ์๋ณ ์ ๋ณด๋ฅผ ์ ๋ฌ(์ ๋ณด ๋
ธ์ถ์ ํผํ๊ธฐ ์ํด Hashํ ํ์ฌ ์ ๋ฌ ๊ถ์ฅ) 16.04์ ์ถ๊ฐ๋จ |
promotionApplicable | Boolean | O | promotionApplicable=true
|
gameUserId ์ฌ์ฉ์๊ฐ ์์คํ ์ด ํ๋ก๋ชจ์
์ ์ฐธ๊ฐ ๊ฐ๋ฅํ์ง ์ฌ๋ถ๋ฅผ ์ค์ 16.04์ ์ถ๊ฐ๋จ |
Return ์ ์์ ์ผ๋ก ์์ฒญ ์์, ์์ฒญ์๋ณ์(RequestId)๋ฅผ ๋ฐํ
Description
๊ตฌ๋งค๋ด์ญ ์กฐํ๋ฅผ ์์ฒญํ๋ค. ๋จ์ผ, ๋ค์ค, ์ ์ฒด ์ํ์ ๋ํด์ ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
Syntax
String sendCommandPurchaseHistory(RequestCallback requestCallback, ProcessType type, String appId, String... productIds)
Parameters
requestCallback
- ์กฐํ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
type
- ์์ฒญ์ ๋ํด์, Background(UI๋ ธ์ถ ์์)๋ก๋ง ์ฒ๋ฆฌ ํ ์ง, ํ์ํ ๊ฒฝ์ฐ Foreground(UI๋ ธ์ถ ํ์ฉ)๋ฅผ ํ์ฉ ํ ์ง๋ฅผ ๊ฒฐ์
- ProcessType.BACKGROUND_ONLY
- ProcessType.FOREGROUND_IF_NEEDED
appId
- ์กฐํ๋ฅผ ํ๋ ค๋ ์ํ(์ฑ)์ ID
productIds
- ์กฐํ๋ฅผ ํ๋ ค๋ ์ํ(์ธ์ฑ์ํ)์ ID
- ์กฐํ๋ฅผ ์ํ๋ ์ํ์ ๋ณต์๊ฐ ์ ๋ ฅ ๊ฐ๋ฅ
- null ์ ๋ ฅ ํ ๊ฒฝ์ฐ, ์ ์ฒด ์ํ(์ธ์ฑ์ํ)์ ๋ํด์ ์กฐํ๋ฅผ ์ํ
Return ์ ์์ ์ผ๋ก ์์ฒญ ์์, ์์ฒญ์๋ณ์(RequestId)๋ฅผ ๋ฐํ
Description
์ฑ์ ์ํ(์ธ์ฑ์ํ)์ ๋ณด ์กฐํ๋ฅผ ์์ฒญํ๋ค.
Syntax
String sendCommandProductInfo(RequestCallback requestCallback, ProcessType type, String appId)
Parameters
requestCallback
- ์กฐํ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
type
- ์์ฒญ์ ๋ํด์, Background(UI๋ ธ์ถ ์์)๋ก๋ง ์ฒ๋ฆฌ ํ ์ง, ํ์ํ ๊ฒฝ์ฐ Foreground(UI๋ ธ์ถ ํ์ฉ)๋ฅผ ํ์ฉ ํ ์ง๋ฅผ ๊ฒฐ์
- ProcessType.BACKGROUND_ONLY
- ProcessType.FOREGROUND_IF_NEEDED
appId
- ์กฐํ๋ฅผ ํ๋ ค๋ ์ํ(์ฑ)์ ID
Return ์ ์์ ์ผ๋ก ์์ฒญ ์์, ์์ฒญ์๋ณ์(RequestId)๋ฅผ ๋ฐํ
Description
๊ตฌ๋งค ๊ฐ๋ฅ์ฌ๋ถ ์กฐํ๋ฅผ ์์ฒญํ๋ค. ๋จ์ผ, ๋ค์ค ์ํ์ ๋ํด์ ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
Syntax
String sendCommandCheckPurchasability(RequestCallback requestCallback, ProcessType type, String appId, String... productIds)
Parameters
requestCallback
- ์กฐํ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
type
- ์์ฒญ์ ๋ํด์, Background(UI๋ ธ์ถ ์์)๋ก๋ง ์ฒ๋ฆฌ ํ ์ง, ํ์ํ ๊ฒฝ์ฐ Foreground(UI๋ ธ์ถ ํ์ฉ)๋ฅผ ํ์ฉ ํ ์ง๋ฅผ ๊ฒฐ์
- ProcessType.BACKGROUND_ONLY
- ProcessType.FOREGROUND_IF_NEEDED
appId
- ์กฐํ๋ฅผ ํ๋ ค๋ ์ํ(์ฑ)์ ID
productIds
- ์กฐํ๋ฅผ ํ๋ ค๋ ์ํ(์ธ์ฑ์ํ)์ ID
- ์กฐํ๋ฅผ ์ํ๋ ์ํ์ ๋ณต์๊ฐ ์ ๋ ฅ ๊ฐ๋ฅ (null ์ ๋ ฅ ๋ถ๊ฐ)
Return ์ ์์ ์ผ๋ก ์์ฒญ ์์, ์์ฒญ์๋ณ์(RequestId)๋ฅผ ๋ฐํ
Description
๊ตฌ๋งคํ ์ํ ์ํ ๋ณ๊ฒฝ์ ์์ฒญํ๋ค. ์ ์ก์ ์ํ์ ๊ฒฝ์ฐ ๊ฐ์ ํด์ง, ์๋ฉธ์ฑ ์ํ์ ๊ฒฝ์ฐ ํฌ์ธํธ ์ฐจ๊ฐ ๋ฑ์ ์์ฒญ
Syntax
String sendCommandChnageProductProperties(RequestCallback requestCallback, ProcessType type, String appId, String action, String... productIds)
Parameters
requestCallback
- ์กฐํ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
type
- ์์ฒญ์ ๋ํด์, Background(UI๋ ธ์ถ ์์)๋ก๋ง ์ฒ๋ฆฌ ํ ์ง, ํ์ํ ๊ฒฝ์ฐ Foreground(UI๋ ธ์ถ ํ์ฉ)๋ฅผ ํ์ฉ ํ ์ง๋ฅผ ๊ฒฐ์
- ProcessType.BACKGROUND_ONLY
- ProcessType.FOREGROUND_IF_NEEDED
appId
- ์ํ ๋ณ๊ฒฝ์ ํ๋ ค๋ ์ํ(์ฑ)์ ID
action
- cancel_subscription : ์ ์ก ๊ฐ์ ํด์ง ์์ฒญ ์ก์ (Action.cancel_subscription.action())
- subtract_points : ๊ฐ์ฉ ํฌ์ธํธ ์ฐจ๊ฐ ์์ฒญ ์ก์ (Action.subtract_points.action())
- null ์ ๋ ฅ ๋ถ๊ฐ
productIds
- ์ํ ๋ณ๊ฒฝ์ ํ๋ ค๋ ์ํ(์ธ์ฑ์ํ)์ ID
- ์ํ ๋ณ๊ฒฝ์ ์ํ๋ ์ํ์ ๋ณต์๊ฐ ์ ๋ ฅ ๊ฐ๋ฅ (null ์ ๋ ฅ ๋ถ๊ฐ)
Return ์ ์์ ์ผ๋ก ์์ฒญ ์์, ์์ฒญ์๋ณ์(RequestId)๋ฅผ ๋ฐํ
Description
์ ์ ์์์ฆ ๊ฒ์ฆ์ ์์ฒญํ๋ค.
Syntax
void sendVerifyReceiptRequest(String appId, String txId, String signData, ReceiptVerificationTask.RequestCallback callback)
Parameters
txId
- ๊ตฌ๋งค ๊ฒฐ๊ณผ๋ก์ ๋ฐ์ TxID
appId
- ๊ฒ์ฆ์ ํ๋ ค๋ ์ํ(์ฑ)์ ID
signData
- ๊ตฌ๋งค ๊ฒฐ๊ณผ๋ก์ ๋ฐ์ ์์์ฆ (receipt)
callback
- ๊ฒ์ฆ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
์ง์ ์์ฒญ์ ๋ฌธ์ String์ผ๋ก ๋ง๋ค์ด์ ์์ฒญ์ ํ๋ค.
Methods | Return | Note |
---|---|---|
sendPaymentRequest | Bundle | |
sendCommandRequest | Bundle | (์ข
๋ฅ) request_product_info request_purchase_history check_purchasability change_product_properties |
sendCommandRequest | Bundle | ์ ๊ท |
Description
๊ฒฐ์ ๋ฅผ ์์ฒญํ๋ค. ๊ธฐ์กด ๋ฒ์ ์์ ์ ๊ณต ํ๋ ๊ฒ์ผ๋ก, ํ์ ํธํ์ฑ์ ์ํด์ ์ ๊ณตํ๋ค.
Syntax
// 16.03
Bundle sendPaymentRequest(String appId, String pId, String productName, String tId, String bpInfo, RequestCallback requestCallback)
// 16.04 (gameUserId, promotionApplicable parameters ์ถ๊ฐ
Bundle sendPaymentRequest(String appId, String pId, String productName, String tId, String bpInfo, String gameUserId, boolean promotionApplicable, RequestCallback requestCallback)
Parameters
appId, pId, productName, tId, bpInfo, gameUserId, promotionApplicable
Parameter | Type | Mandatory | Limit | sample | Description |
---|---|---|---|---|---|
appid | String | M | 10 | appid=OA12345678
|
Application ์์ด๋ (AID), ์๋ฌธ์ OA์ ์ซ์๋ฅผ ํฌํจํ 10๊ธ์ |
pId | String | M | 10 | product_id=0000000011
|
์ธ์ฑ ์ํID, 10์๋ฆฌ ์ซ์ |
productName | String | O | 50 | product_name=์ปค์คํ
์ธ์ฑ ์ํ๋ช
|
์ธ์ฑ ์ํ๋ช |
tid | String | O | 100 | tid=20150301_purchase_1110112
|
๊ฐ๋ฐ์ฌ ์์ฑํ๋ ID๊ฐ |
bpInfo | String | O | 1024 | `utm_source=onestore_utm_medium=iap | ์บ ํ์ธ ํต๊ณ ๋ฑ์ ์ํด์ ๊ฐ๋ฐ์ฌ๊ฐ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๋ ํ๊ทธ |
gameUserId | String | O | 1000 | gameUserId=223123124sadas
|
์์คํ ์ด ํ๋ก๋ชจ์
์ค๋ณต ์ฐธ์ฌ ๋ฐฉ์ง๋ฅผ ์ํ ๊ฐ์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์
์ฌ์ฉ์์ ๊ณ ์ ์๋ณ ์ ๋ณด๋ฅผ ์ ๋ฌ(์ ๋ณด ๋
ธ์ถ์ ํผํ๊ธฐ ์ํด Hashํ ํ์ฌ ์ ๋ฌ ๊ถ์ฅ) 16.04์ ์ถ๊ฐ๋จ |
promotionApplicable | Boolean | O | promotionApplicable=true
|
gameUserId ์ฌ์ฉ์๊ฐ ์์คํ ์ด ํ๋ก๋ชจ์
์ ์ฐธ๊ฐ ๊ฐ๋ฅํ์ง ์ฌ๋ถ๋ฅผ ์ค์ 16.04์ ์ถ๊ฐ๋จ |
product_name
์ ํ๊ธ์ 50์, ์๋ฌธ์ 100์๊น์ง ๊ฐ๋ฅํ๋, 50์ ์ดํ๋ฅผ ๊ถ์ฅํจ
-
tid
,product_name
์์ ์๋ฐ์ดํ( ", double quotation ) ๋ ์ฌ์ฉ ๋ถ๊ฐ -
tid
์์ ๋์ด์ฐ๊ธฐ ๋ถ๊ฐ
requestCallback
- ๊ฒฐ์ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
Return ์ ์์ ์ผ๋ก ์์ฒญ ์์, ์์ฒญ์๋ณ์(RequestId)๋ฅผ ํฌํจํ ์ ๋ณด๋ฅผ ๋ฐํ (์คํจ์์๋ null์ ๋ฆฌํด)
bundle์ Extra Key
- req.id : ์์ฒญ์๋ณ์
- req.rescode : ์์ฒญ์ ๋ํ ์๋ฌ ์ฝ๋
- req.resmsg : ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ ๋ฉ์์ง
IAP ์๋ฒ๋ ๊ตฌ๋งค ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ JSON ํํ์ ์๋ต ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ฌ ์ ์กํ๋ค. ๊ตฌ๋งค ์ฒ๋ฆฌ์ ๋ํ ์๋ต ๋ฐ์ดํฐ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ฒฐ๊ณผ ๋ฐ ์๋ฌ์ฝ๋๋ ๋ ํผ๋ฐ์ค(Result-Code) ์ฐธ์กฐํ๋ค
Parameter | Type | Mandatory | Limit | sample | Description |
---|---|---|---|---|---|
api_version | String | M | 1 | 4 | IAP API๋ฒ์ |
identifier | String | M | 10 | 1234567890 |
์์ฒญ ์๋ณ์ |
method | String | M | - | purchase |
์์ฒญ ๋ฉ์๋ ๊ตฌ๋งค ์์ฒญ์ ๋ํ ๋ฉ์๋๋ ํญ์ purchase ์ |
result | Object | M | - | ์์ฒญ ๋ฉ์๋์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ Object | |
code | String | M | 4 | 1000 |
๊ฒฐ๊ณผ ์ฝ๋ (๋ ํผ๋ฐ์ค(Result-Code) ์ฐธ์กฐ) |
message | String | M | - | ํ์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ถ์กฑํฉ๋๋ค. | ๊ฒฐ๊ณผ ์ฝ๋์ ๋ฐ๋ฅธ ๋ฉ์์ง |
txid | String | O | 40 | TSTOREXXXX_20160515102510XXXXXXXXXXXXXXX |
์ ์์์์ฆ ID |
receipt | String | O | ์ต๋ 5kbyte | - | ์ ์ ์์์ฆ, ๊ตฌ๋งค ์ ํจ์ฑ์ ๋ํ ์ฌ์ด๋๊ฐ |
count | Number | O | 1 | 1 |
๊ตฌ๋งค ์ฑ๊ณต ์ํ ์ |
tid | String | O | 1024 | 20150301_purchase_1110112 |
๊ฐ๋ฐ์ฌ๊ฐ ๋ฐ๊ธํ TID |
product | Array | O | ์ํ ์ ๋ณด Array | ||
id | String | O | 10 | 0000000011 |
์ธ์ฑ์ํ ID |
name | String | O | 200 | ์ปค์คํ
์ธ์ฑ ์ํ๋ช
|
์ธ์ฑ ์ํ๋ช |
kind | String | O | - |
consumable - non-consumable: ์๊ตฌ์ฑ ๊ฑด๋น์ํ - consumable: ์๋ฉธ์ฑ ๊ฑด๋น์ํ - one-day-pass: ์ผ๊ธฐ๊ฐ ์ํ - one-week-pass: ์ฃผ๊ธฐ๊ฐ ์ํ - one-month-pass: ์๊ธฐ๊ฐ ์ํ |
์ํ ์ข ๋ฅ |
price | Number | O | 6 | 300000 |
์ธ์ฑ์ํ ๊ฐ๊ฒฉ ํ์ (์ต๋ 30๋ง) |
์ธ์ฑ ์ํ๋ช ์ request ์์ ์ ์ ๋ฌํ ๊ฐ์ ๋ฆฌํดํจ (์์ผ๋ฉด ๊ฐ๋ฐ์์ผํฐ ๋ฑ๋ก๋ช ์ฌ์ฉ)
bp_info
๋json
์๋ต์ผ๋ก๋ ๋ฆฌํดํ์ง ์์??
[ํต์ ์ฌ๋ณ TXID ๋ถ์ฌ Sample]
๊ตฌ๋ถ | ์์ | ๋น๊ณ |
---|---|---|
SKT | TSTOREXXXX_20150515102510XXXXXXXXXXXXXXX | TSTORE+4์๋ฆฌ์ ์๋ณ์ |
KT | KTXXXXXXXX_20150515102510XXXXXXXXXXXXXXX | KT+8์๋ฆฌ์ ์๋ณ์ |
LG | LGXXXXXXXX_20150515102510XXXXXXXXXXXXXXX | LG+8์๋ฆฌ์ ์๋ณ์ |
{
"api_version" : "(api version)",
"identifier" : "(request id)",
"method" : "purchase",
"result" : {
"code" : "(result code)",
"message" : "(result message)",
"txid" : "(id)",
"receipt" : "(encode receipt using Base64)",
"count" : "(count of product)",
"product" : [ { "(product information)" } ]
}
}
Description
์ฌ๋ฌ๊ฐ์ง ์กฐํ(์์ฒญ)์ ์ํํ๋ค.
- ๊ตฌ๋งค๋ด์ญ ์กฐํ
- ์ํ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
- ๊ตฌ๋งค ๊ฐ๋ฅ์ฌ๋ถ ์ฒดํฌ
- ๊ตฌ๋งคํ ์ํ ์ํ ๋ณ๊ฒฝ ์์ฒญ
Syntax
Bundle sendCommandRequest(String param, RequestCallback requestCallback)
Parameters
param
- ์กฐํ๋ฅผ ์ํ json ํฌ๋งท์ ์์ฒญ ์ ๋ฌธ
requestCallback
- ๊ฒฐ์ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
Return ์ ์์ ์ผ๋ก ์์ฒญ ์์, ์์ฒญ์๋ณ์(RequestId)๋ฅผ ํฌํจํ ์ ๋ณด๋ฅผ ๋ฐํ (์คํจ์์๋ null์ ๋ฆฌํด)
bundle์ Extra Key
- req.id : ์์ฒญ์๋ณ์
- req.rescode : ์์ฒญ์ ๋ํ ์๋ฌ ์ฝ๋
- req.resmsg : ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ ๋ฉ์์ง
Parameter | Type | Mandatory | Limit | sample | Description |
---|---|---|---|---|---|
method | String | M | - | request_purchase_history |
์ ์๋ ๊ธฐ๋ฅ ๋ฉ์๋ ์ด๋ฆ |
param | Object | M | - | ๋ฉ์๋์์ ์๊ตฌ๋๋ ํ๋ผ๋ฏธํฐ ์ ๋ณด | |
appid | String | M | 10 | "appid" : "OA12345678", |
Application ID(AID) |
product_id | Array | O | - | "product_id" : ["0000000020", "0000000021"] } |
์ธ์ฑ์ํID, Array๋ก ๋ณต์ ๋ฑ๋ก ๊ฐ๋ฅ |
action | String | O | - |
cancel_subscription ๋๋ subtract_points
|
change_product_properties ๋ฉ์๋์ ์๋ธ ์ก์
|
filter | Object | O | - | - | ๊ฒฐ๊ณผ์ ๋ํ filter ์ค์ (ํ์ , ์ข ๋ฅ, ๋ ์ง) |
Method ์ข ๋ฅ
Method | Description | Req Parameters |
---|---|---|
request_product_info | AID์ ๋ฑ๋ก๋ ๋ชจ๋ ์ธ์ฑ์ํ ์ ๋ณด ์กฐํ | appid |
request_purchase_history | ๊ตฌ๋งค ์ด๋ ฅ ์กฐํ(๋จ์ผ, ๋ค์ค, ๋ชจ๋ ์ํ) | appid, product_id |
check_purchasability | ๊ตฌ๋งค ๊ฐ๋ฅํ ์ํ ์กฐํ | appid, product_id |
change_product_properties | ๊ตฌ๋งคํ ์ํ ์ํ ๋ณ๊ฒฝ ์์ฒญ | appid, product_id, action |
- action: cancel_subscription ์ ์ก ๊ฐ์ ํด์ง ์์ฒญ ์ก์
- action: subtract_points ๊ฐ์ฉ ํฌ์ธํธ ์ฐจ๊ฐ ์์ฒญ ์ก์
ํ์ ํธํ์ฉ method
์๋ method๋ ๊ตฌ๋ฒ์ IAP์์ ์ฌ์ฉํ ๊ท๊ฒฉ์ผ๋ก ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์์
|Method|Description|Req Parameters| |-----|-----|-----| |auth_item |๊ตฌ๋งคํ ๋จ์ผ/๋ค์ค ์ํ ์กฐํ ์์ฒญ|appid, product_id| |whole_auth_item |๊ตฌ๋งคํ ๋ชจ๋ ์ํ ์กฐํ ์์ฒญ |appid| |monthly_withdraw |์ ์ ์ก ํด์ง ์์ฒญ |appid, product_id| |item_use |์๋ฉธ์ฑ ์ํ ํฌ์ธํธ ์ฐจ๊ฐ ์์ฒญ |appid, product_id|
{
"method" : "(method name)",
"param" : {
"appid" : "(application id)",
"product_id" : ["(product id)"],
"action" : "(sub action of method)"
}
}
๊ฒฐ๊ณผ ๋ฐ ์๋ฌ์ฝ๋๋ ๋ ํผ๋ฐ์ค(Result-Code) ์ฐธ์กฐํ๋ค
Parameter | Type | Mandatory | Limit | sample | Description |
---|---|---|---|---|---|
api_version | String | M | 1 | 4 |
IAP API ๋ฒ์ |
identifier | String | M | 10 | 1234567890 |
์์ฒญ ์๋ณ์ |
method | String | M | - | request_product_info |
์์ฒญ ๋ฉ์๋ |
result | Object | M | - | ์์ฒญ ๋ฉ์๋์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ Object | |
code | String | M | 4 | 0000 |
๊ฒฐ๊ณผ ์ฝ๋ |
message | String | M | - | ์์ดํ ์กฐํ์ ์ฑ๊ณตํ์์ต๋๋ค. | ๊ฒฐ๊ณผ ์ฝ๋์ ๋ฐ๋ฅธ ๋ฉ์์ง |
count | Number | O | 1 | 3 |
์กฐํ์ ์ฑ๊ณตํ ์ํ๊ฐฏ์ |
product | Array | O | ์ํ ์ ๋ณด Array | ||
appid | String | O | 10 | OA00012345 |
AID |
id | String | M | 10 | 0000000020 |
์ธ์ฑ์ํ ID |
name | String | O | 200 | ์ปค์คํ
์ํ๋ช
|
์ธ์ฑ ์ํ๋ช |
type | String | O | - | one-time: ๊ฑด๋น์ํ subscription: ๊ธฐ๊ฐ์ํ entitlement: ์ ์ํ ์ ํ ์ํ auto-renewal-month: ์์ ์ก ์ํ |
์ํ ํ์ |
kind | String | O | - | non-consumable: ์๊ตฌ์ฑ ์ํ consumable: ์๋ฉธ์ฑ ์ํ one-day-pass: ์ผ๊ธฐ๊ฐ ์ํ one-week-pass: ์ฃผ๊ธฐ๊ฐ ์ํ one-month-pass: ์๊ธฐ๊ฐ ์ํ |
์ํ ์ข ๋ฅ |
validity | Number | O | - | ์๊ตฌ์ฑ ์ํ: 1 (์ ํจ)๊ธฐ๊ฐ์ ์ํ: 7 (7์ผ ๋จ์)์์ ์ก ์ํ: 365 (1๋
๋จ์) |
์๊ตฌ์ฑ ์ํ์ ์ ํจ์ฑ ๋๋ ๊ธฐ๊ฐ์ ์ํ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ผ์ |
price | Number | O | 6 | 300000 |
์ํ ๊ฐ๊ฒฉ (์ต๋ 30๋ง์) |
startDate | String | O | 14 |
20160714104950 (Format: YYYYMMDDhhmmss) |
์ํ ๊ตฌ๋งค์ผ |
endDate | String | O | 14 | 20170714104950 |
์ํ ์ข
๋ฃ์ผ (๊ธฐ๊ฐ์ ํน์ ์ ์ก์ ์ํ์ ๋ง๋ฃ ๋ ์ง๋ฅผ ์๋ฏธ) |
purchasability | Boolean | O | - |
true / false
|
์ํ ๊ตฌ๋งค ๊ฐ๋ฅ ์ฌ๋ถ |
status | Object | O | - | ํน์ ๋ฉ์๋ ์๋ต์ผ ๊ฒฝ์ฐ status ํ๋ ํ์ ํฌํจ | request_purchase_history change_product_properties - - - auth_item item_use monthly_withdraw |
code | String | M | 4 | PH00 |
(Hex)๊ฒฐ๊ณผ ์ฝ๋ |
message | String | M | - | ์์ดํ
์ธ์ฆ์ ์ฑ๊ณตํ์์ต๋๋ค. |
๊ฒฐ๊ณผ ๋ฉ์์ง |
์ฃผ์์ฌํญ
- ์์ ์ก ์ํ[auto-renewal-month] ์ธ ๊ฒฝ์ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ์ผ์๋ก ์ฌ์ฉํ์ง ๋ง์์ผ ํ๋ฉฐ endDate ๊ธฐ์ค์ผ๋ก Application ์์ ํ์ธํ ์ฌ์ฉํ๋ค.
-
status
๋ ์๋ ๋ฉ์๋ ์๋ต์ผ ๊ฒฝ์ฐ์๋ง ํ์๋ก ๊ฒฐ๊ณผ์ฝ๋์ ๋ฉ์์ง๋ฅผ ๋ฆฌํดํ๋ค.- request_purchase_history
- change_product_properties
- auth_item
- item_use
- monthly_withdraw
์๋ต ๋ฐ์ดํฐ ๊ธฐ๋ณธ ํ์
{
"api_version" : "(api version)",
"identifier" : "(request id)",
"method" : "purchase",
"result" : {
"code" : "(result code)",
"message" : "(result message)"
}
}
์กฐํ์ฑ qurey์ ์๋ต ๋ฐ์ดํฐ ํ์ ์กฐํ์ฑ ์ปค๋งจ๋ ์์ฒญ์ผ ๊ฒฝ์ฐ ์๋ต ๋ฐ์ดํฐ result ํ๋ ์์ product ํ๋๊ฐ ํฌํจ๋๋ฉฐ product ํ๋ ์์ ํฌํจ๋๋ ํ๋ ์ ๋ณด๋ ๊ฐ ๊ธฐ๋ฅ ๋ฉ์๋ ๋ณ๋ก ์์ดํ๋ค
{
"api_version" : "(api version)",
"identifier" : "(request id)",
"method" : "purchase",
"result" : {
"code" : "(result code)",
"message" : "(result message)",
"count" : "(count of product)",
"product" : [ { "(product information)" } ]
}
}
์์ ๋์ผํ ๊ธฐ๋ฅ์ด๋ฉฐ, Foregroundํ์ฉ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์์ญ๋๋ค.
Description
์ฌ๋ฌ๊ฐ์ง ์กฐํ(์์ฒญ)์ ์ํํ๋ค.
- ๊ตฌ๋งค๋ด์ญ ์กฐํ
- ์ํ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
- ๊ตฌ๋งค ๊ฐ๋ฅ์ฌ๋ถ ์ฒดํฌ
- ๊ตฌ๋งคํ ์ํ ์ํ ๋ณ๊ฒฝ ์์ฒญ
Syntax
Bundle sendCommandRequest(String param, RequestCallback requestCallback, ProcessType type)
Parameters
param
- ์กฐํ๋ฅผ ์ํ json ํฌ๋งท์ ์์ฒญ ์ ๋ฌธ
requestCallback
- ๊ฒฐ์ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ
type
- ์์ฒญ์ ๋ํด์, Background(UI๋ ธ์ถ ์์)๋ก๋ง ์ฒ๋ฆฌ ํ ์ง, ํ์ํ ๊ฒฝ์ฐ Foreground(UI๋ ธ์ถ ํ์ฉ)๋ฅผ ํ์ฉ ํ ์ง๋ฅผ ๊ฒฐ์
- ProcessType.BACKGROUND_ONLY
- ProcessType.FOREGROUND_IF_NEEDED
Return ์ ์์ ์ผ๋ก ์์ฒญ ์์, ์์ฒญ์๋ณ์(RequestId)๋ฅผ ํฌํจํ ์ ๋ณด๋ฅผ ๋ฐํ (์คํจ์์๋ null์ ๋ฆฌํด)
์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ธฐ ์ํ ์ถ์ ํด๋์ค์ด๋ค. ํด๋น ํด๋์ค๋ฅผ ๊ตฌํํ๊ณ , ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์์ฒญ ์์ ๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ์ผ ํ๋ค.
private IapPlugin.AbsRequestCallback mAbsRequestCallback = new IapPlugin.AbsRequestCallback() {
@Override
protected void onResponse(Response response) {
// ์ ์์ ์ธ ์๋ต์ ๋ฐ์
}
@Override
public void onError(String reqid, String errcode, String errmsg) {
// ์๋ฌ๋ฐ์
}
};
AbsRequestCallback ์ ์๋์ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
Methods | Description |
---|---|
onError | ์์ฒญ ์ฒ๋ฆฌ ์ค ์คํจํ๋ฉด ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์ |
onResponse | ์ ์์ ์ผ๋ก ์์ฒญ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์๋ต ๋ฐ์ ๊ฒฝ์ฐ ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์ |
Description
์์ฒญ ์ฒ๋ฆฌ ์ค ์คํจํ๋ฉด ํธ์ถ๋๋ ์ฝ๋ฐฑ
onError ์๋ฌ ์ฝ๋, ๋ฉ์์ง ์ ์๋ ๋ ํผ๋ฐ์ค(Result-Code) ์ฐธ์กฐํ๋ค.
Syntax
void onError(String reqid, String errcode, String errmsg)
Parameters
- reqid ์์ฒญ ์์ด๋
- errcode ์คํจ ์ฝ๋
- errmsg ์คํจ ๋ฉ์์ง
Description
์ ์์ ์ผ๋ก ์์ฒญ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์๋ต ๋ฐ์ ๊ฒฝ์ฐ ํธ์ถ๋๋ ์ฝ๋ฐฑ
Syntax
void onResponse(Response response)
์๋ต ํด๋์ค (๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ฒด ํํ๋ก ๊ฐ์ง๊ณ ์์)์ด๋ค. IapResultCallback์ onResponse ํธ์ถ(์ฝ๋ฐฑ) ์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ ๋๋ค.
์ด ํด๋์ค๋ ์๋ฒ๋ก ๋ถํฐ ๋ฐ์ Stringํํ์ ๊ฒฐ๊ณผ๋ฅผ ํด๋์ค์ ํํ๋ก ๋ณํํ ๊ฒ์ด๋ค. ๊ธฐ์กด์๋ ์ํํ๋ก์ ํธ์ helper ํจํค์ง๋ฅผ ํตํด์ ๊ฐ๋ฐ์๊ฐ ์ง์ ๋ณํํ์์ผ๋, ์ด๋ฒ ๋ฒ์ ๋ถํฐ๋ ๋ณํ ํ ๊ฒฐ๊ณผ๋ฅผ ์ฃผ๋ ๊ฒ์ผ๋ก ์์ ๋์๋ค.
๋ชจ๋ ํ๋๋ public์ผ๋ก์ ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ๋ชจ๋ ํ๋๋ null ์ผ ์ ์๋ค. ์๋ฒ๋ก ๋ถํฐ ์ ๋ณด๋ฅผ ๋ฐ์ง ๋ชปํ ๋ถ๋ถ์ ๋ํด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก null์ด ์ ํ ๋๋ค.
public class Response {
public final String api_version;
public final String identifier;
public final String method;
public final Result result;
...
}
public static class Result {
public final String message;
public final String code;
public final String txid;
public final String receipt;
public final Integer count;
public final List<Product> product;
...
}
public static class Product {
public String appid;
public String id;
public String name;
public String type;
public String kind;
public Integer validity;
public Double price;
public String startDate;
public String endDate;
public Boolean purchasability;
public Status status;
...
}
public static class Status {
public String code;
public String message;
...
}
์์ฒญ ์ฒ๋ฆฌ ํ์ ์ ์ ์ํ enum์ด๋ค.
public enum ProcessType {
BACKGROUND_ONLY,
FOREGROUND_IF_NEEDED,
}
๊ธฐ๋ณธ์ ์ผ๋ก
FOREGROUND_IF_NEEDED
์ ์ค์ ์ ์ถ์ฒํ๋ค.
์์ฒญ ์ฒ๋ฆฌ ๊ณผ์ ์์ Ui ๋ ธ์ถ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด,
- ํผ๋ฏธ์ ์๊ตฌ ํ๋ฉด
- ONE store service ์ค์น ์๊ตฌ ํ๋ฉด
์์ ๊ฐ์ ์ํฉ๋ค์ด ์กด์ฌํ๋ค. ์ด๋ฐ ์ํฉ์ ๋ํด์ ์์ฒญ์ ์ค์ง ์ํค๊ณ ์๋ฌ๋ฅผ ๋ฐ๊ณ ์ถ๋ค๋ฉด, BACKGROUND_ONLY
๋ก ์์ฒญ์ ํ๋ฉด ๋๋ค.
IapPlugin์ ํธ์ถ์ ํตํ, ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ธฐ ์ํ Callback
์ธํฐํ์ด์ค์ด๋ค.
์์ฒญ ๋ฉ์๋ ํธ์ถ ์, ๊ตฌํ๋ RequestCallback ์ธ์คํด์ค๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํจ์ผ๋ก ์ฝ๋ฐฑ์ด ์ค์ ๋๋ฉฐ ์์ฒญ ์ฒ๋ฆฌ ์คํจ, ์ฑ๊ณต์ ๋ฐ๋ผ ํด๋นํ๋ ์ธํฐํ์ด์ค ๋ฉ์๋๊ฐ ํธ์ถ ๋๋ค.
RequestCallback ์ ์๋์ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
Methods | Description |
---|---|
onError | ์์ฒญ ์ฒ๋ฆฌ ์ค ์คํจํ๋ฉด ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์ |
onResponse | ์ ์์ ์ผ๋ก ์์ฒญ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์๋ต ๋ฐ์ ๊ฒฝ์ฐ ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์ |
Description
์์ฒญ ์ฒ๋ฆฌ ์ค ์คํจํ๋ฉด ํธ์ถ๋๋ ์ฝ๋ฐฑ
onError ์๋ฌ ์ฝ๋, ๋ฉ์์ง ์ ์๋ ์๋ ํญ๋ชฉ์ ์ฐธ๊ณ ํ๋ค.
Syntax
void onError(String rid, String errcode, String errmsg)
Parameters
- rid ์์ฒญ ์์ด๋
- errcode ์คํจ ์ฝ๋
- errmsg ์คํจ ๋ฉ์์ง
Description
์ ์์ ์ผ๋ก ์์ฒญ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์๋ต ๋ฐ์ ๊ฒฝ์ฐ ํธ์ถ๋๋ ์ฝ๋ฐฑ
onResponse ๊ฒฐ๊ณผ ์ฝ๋, ๋ฉ์์ง ์ ์๋ ๋ ํผ๋ฐ์ค(Result-Code) ์ฐธ์กฐํ๋ค.
Syntax
public void onResponse(IapResponse response)
Parameters
response
IapResponse
๊ตฌํํ ์๋ต ๋ฐ์ดํฐ ์ธ์คํด์ค๋ก ๋ชฉ๋ก์ ์๋์ ๊ฐ๋ค.
Methods | Descreption |
---|---|
getContentLength | ์๋ต ๋ฐ์ดํฐ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค. |
getContent | ์๋ต ๋ฐ์ดํฐ๋ฅผ InputStream๋ก ๋ฐํํ๋ค. |
getContentToString | ์๋ต ๋ฐ์ดํฐ๋ฅผ String์ผ๋ก ๋ฐํํ๋ค. |
getContentEncoding | ๋ฌธ์ ๋ฐ์ดํฐ ์ธ์ฝ๋ฉ ํ์ ์ ๋ฐํํ๋ค |
์๋ฒ ์๋ต ๋ฐ์ดํฐ์ ๋ํ ์ธํฐํ์ด์ค๋ก ๋ฉ์๋ ๋ชฉ๋ก์ ์๋์ ๊ฐ๋ค.
Methods | Descreption |
---|---|
getContentLength | ์๋ต ๋ฐ์ดํฐ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค. |
getContent | ์๋ต ๋ฐ์ดํฐ๋ฅผ InputStream๋ก ๋ฐํํ๋ค. |
getContentToString | ์๋ต ๋ฐ์ดํฐ๋ฅผ String์ผ๋ก ๋ฐํํ๋ค. |
getContentEncoding | ๋ฌธ์ ๋ฐ์ดํฐ ์ธ์ฝ๋ฉ ํ์ ์ ๋ฐํํ๋ค |
Description
์๋ต ๋ฐ์ดํฐ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค.
Syntax
long getContentLength())
Return
์๋ต ๋ฐ์ดํฐ ๊ธธ์ด
Description
์๋ต ๋ฐ์ดํฐ๋ฅผ InputStream๋ก ๋ฐํํ๋ค.
Syntax
InputStream getContent() throws IOException
Return
์๋ต ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ InputStream์ ๋ฆฌํด
Description
์๋ต ๋ฐ์ดํฐ๋ฅผ String์ผ๋ก ๋ฐํํ๋ค. ๋ฌธ์์ด์ getContentEncoding ๋ฐํ๋๋ ์ธ์ฝ๋ฉ ๋ฐฉ์์ผ๋ก ๋ณํ๋๋ค. (๊ธฐ๋ณธ ์ธ์ฝ๋ฉ ๋ฐฉ์์ utf-8 ์ด ์ฌ์ฉ๋๋ค)
Syntax
String getContentToString()
Return
์ธ์ฝ๋ฉ๋์ด์ง ๊ฒฐ๊ณผ๋ฅผ String์ผ๋ก ๋ฆฌํด
Description
๋ฌธ์ ๋ฐ์ดํฐ ์ธ์ฝ๋ฉ ํ์ ์ ๋ฐํํ๋ค. (๊ธฐ๋ณธ ์ธ์ฝ๋ฉ ๋ฐฉ์์ utf-8์ด ์ฌ์ฉ๋๋ค.)
Syntax
String getContentEncoding()
Return ์ธ์ฝ๋ฉ ํ์ ์ String์ผ๋ก ๋ฐํํ๋ค.