IAP quick Guide - 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
- μμ€ν μ΄μμ μ 곡νλ κ²°μ λͺ¨λ(μλλ‘μ΄λ SDK)κ³Ό Server API μ°λμ μν μ λ°μ λ΄μ©μ κ°λ΅ν μ°λ κ°λ°μ¬μ κ΄μ μμ μμ±νμλ€.
- λ³Έ λ¬Έμμμ κ°μ΄λνλ μ°λ μμ Business Flowλ μμ€ν μ΄μμ κΆμ₯νλ λ°©μμ΄λ©° κ°λ°μ¬μ μμ€ν νΉμ±μ λ°λΌ μ μ ν λ³κ²½ μ μ© κ°λ°μ΄ κ°λ₯νλ€.
- κ° κΈ°λ₯λ³ μΈλΆ λ΄μ©μ μμ€ν μ΄ κ°λ°μ μΌν°μ 곡μ κ°μ΄λλ₯Ό ν΅νμ¬ νμΈμ΄ κ°λ₯νλ€.
- IAP(In-App Purchase, μΈμ±κ²°μ ): λΆλΆμ λ£ν μΈμ± μν κ²°μ
- κ°λ°μ¬(Merchant): μμ€ν μ΄μμ μ 곡νλ κ²°μ λͺ¨λμ μ°λνμ¬ κ²°μ μλΉμ€λ₯Ό μ 곡νλ μ 체
- μΈμ±μν(Product ID, μ΄ν PID) : κ°λ°μ¬μμ λ°°ν¬νλ μ± λ΄λΆμμ ν맀νλ κ°λ³ μν, ν΄λΉ μνμ μμ€ν μ΄μμ μ 곡νλ μν IDμ 1:1λ‘ λμλ¨
- IAP SDK(μ΄ν SDK): μλλ‘μ΄λ λ¨λ§μ κ²°μ μλΉμ€ μ°λμ μν libraryλ‘ .jar νμΌ ννλ‘ μ 곡
- IapPlugin: IAP SDKμ λμΌ
- κ²°μ Transaction : κ°λ³ κ²°μ 건μ λν μΈλΆ λ΄μ©κ³Ό μ§ν νλ¦ μ λ°μ μλ―Έ
- TXID : κ²°μ μλ£μ SDKμμ μλ΅(response)κ°μΌλ‘ μ λ¬λλ κ°μΌλ‘, μμ€ν μ΄μμ λ°ννλ κ²°μ 건μ κ³ μ λ‘ λΆμ¬λλ ID (Payment Transaction ID)
- TID : TXIDμ λ³κ°λ‘ κ°λ³ κ²°μ 건μ λν΄μ κ°λ°μ¬κ° μ§μ λΆμ¬ν μ μλ κ³ μ ID
- μ μμμμ¦ : κ²°μ μλ£μ SDKμμ TXIDμ ν¨κ» μλ΅κ°μΌλ‘ μ λ¬λλ κ°μΌλ‘, κ²°μ μΈλΆ λ΄μ©μ λν μ μμλͺ κ°
- μΈμ±μνμ μ νμ λ°λΌ κ²°μ μ μ€λ³΅ ꡬ맀 λΆκ° λ° κ΅¬λ§€ κ°λ₯ μκ°μ΄ κ΄λ¦¬λ¨
- κ²°μ κ° μ μ μλ£λ μνμ λν βμ¬μ©μλ£β νΉμ βμλΉβμ κ°λ μ μμ
- κ°λ°μ¬μ μ± μλ²(Billing)μμ ν맀λ μνμ μ¬μ© κ°λ₯ μ¬λΆμ μ΄λ ₯ κ΄λ¦¬ νμ
- κ²°μ μ λν μλ£μ¬λΆλ₯Ό λ¨λ§(SDKμ μλ΅)μ ν΅ν΄μλ§ μ μ μμ
- κ²°μ μλ£ ν SDKμ μλ΅κ° μ€ μ μ₯μ΄ νμν κ°μ κ°λ°μ¬μμ μ μ₯ κ΄λ¦¬ νμ
- ν₯ν κ°λ³ κ²°μ 건μ λν Server to Server Notification μ 곡 μμ
- κ°λ°μμΌν° κ°λ°μ¬ κ³μ μμ±
- μ± λ° μν μ 보 μ€μ λ° μμ±
- ν μ€νΈ νκ²½μμ SDK μ°λ κ°λ°
- μ± κ²μ¦μμ² λ° μν ν맀μν μ ν
- Live λͺ¨λ(SDKμ Releaseλͺ¨λ)μμμλ μμ€ν μ΄μ μν κ²°μ κ²μ¦μ΄ μλ£λ μνμμλ§ μ μ κ²°μ κ° κ°λ₯ν¨
- SDKλ₯Ό μ€μ λ¨λ§Appμ μ°λνμ¬ κ²°μ κΈ°λ₯ κ°λ°
- SDKμμ μ 곡νλ κ°μ’ Command API λ₯Ό νΈμΆνμ¬ μ μ μλ΅ νμΈ
- μμ€ν μ΄μμ μ 곡νλ Server to Server APIλ₯Ό νΈμΆνμ¬ μ μ μλ΅ νμΈ
- μλλ‘μ΄λ λ¨λ§μ μ°λμ μν μ΄κΈ° νκ²½ μ€μ λ° μ λ°μ λ΄μ©μ μλμ λ§ν¬λ₯Ό μ°Έμ‘°
- κ²°μ μ²λ¦¬ Flow
- μλ κ·Έλ¦Όμ IapPluginμ΄ SDKμ ν΄λΉλλ©°, λ¨λ§μ μ€μΉλλ Appμ΄ YourApp μ ν΄λΉλ¨
- κ·Έλ¦Όμ κ²°μ μμ²κ³Ό μλ΅μμ Parameterλ νμ μΈμλ§ νμν¨
- SDKλ‘ λΆν° μ μ μλ΅μ λ°μ κ²½μ° μΌλΆκ°(3λ² νλͺ©, μ΅μ κΆκ³ μ¬ν)μ μλμ κ°μ΄ Appμ Serverλ‘ μ μ‘νμ¬ μ²λ¦¬νμ
[κ·Έλ¦Ό1] SDK κ²°μ μμ² μ²λ¦¬
- κ²°μ μμ²μ (SDK μμ μ 곡νλ) IapPlugin.sendPaymentRequest APIλ₯Ό νΈμΆ
- μμΈμ°Έκ³ : sendPaymentRequest
- μμ² Parameterλ³ λΆμ
Parameter | Type | νμ | μ€λͺ |
---|---|---|---|
appId | string | O | - κ°λ°μμΌν°μμ μμ±&λ°νλλ appμ idκ° - 10μ리 κ³ μ κ° (βOAβλ‘ μμ) ex) OA00001234 |
pId | string | O | - κ°λ°μμΌν°μμ μμ±&λ°νλλ app λ΄λΆ μν(product)μ idκ° - 10μ리 κ³ μ κ° ex) 0900001234(β09β νΉμ β00βμΌλ‘ μμ) |
productName | string | X | - κ°λ°μ¬μμ μ νμ μΌλ‘ κ²°μ νλ©΄μ μ€μ ν μ μλ μνλͺ
- pIdλ λμΌνλ μ΄λ²€νΈ λ±μΌλ‘ μνλͺ μ μΌμμ μΌλ‘ λ°κΏμΌ νλ κ²½μ° νμ©κ°λ₯ ex) βκΈν100β β βκΈν120 (보λμ€20)β - μνμ΄ λ§€μ° λ€μνλ κΈμ‘μ΄ λμΌν κ²½μ°, νλμ pId μ€μ ν μνλͺ μ λ€μννμ¬ νμ© κ°λ₯ |
tid | string | X | - κ²°μ μ κ°λ°μ¬μμ λ°ννλ κ²°μ μ λν κ³ μ IDκ° (μμ€ν μ΄μμ λ°ννλ txidκ°κ³Όλ λ³κ°λ‘ κ°λ°μ¬μμ λ°ν κ΄λ¦¬ ν μ μλ κ²°μ transactionμ κ³ μ κ°) - tid μ¬μ©μ Serverμμ μ 곡νλ βtidꡬ맀μ΄λ ₯ μ‘°νβ APIλ₯Ό ν΅νμ¬ κ²°μ μ§ν μ¬λΆμ μκ΄μμ΄ κ΅¬λ§€μ΄λ ₯μ μ‘°νκ° κ°λ₯ν¨ (Server API Section μ°Έμ‘°) |
gameUserId | string | X | - κ²°μ μ κ°λ°μ¬μμ λ°ννλ μ΄ν리μΌμ΄μ
μ¬μ©μμ λν κ³ μ IDκ° - μ¬μ©μμ μμ€ν μ΄ νλ‘λͺ¨μ μ°Έμ¬λ₯Ό μ μ΄ νλλ‘ μ 곡ν κ° - 16.04 λΆν° μ 곡 |
promotionApplicable | boolean | X | - gameUserIdλ‘ μ
λ ₯λ μ¬μ©μμ νλ‘λͺ¨μ
μ°Έμ¬ μ¬λΆ κ²°μ - gameUserIDκ° μ λ ₯λμ§ μμ κ²½μ° μ¬μ©λμ§ μμ - 16.04 λΆν° μ 곡 |
- κ²°μ μ λν μλ΅μ (SDKμμ μ 곡νλ) requestCallback μ€λΈμ νΈλ₯Ό μ λ¬ λ°μ
- μλ΅ νν (μ€μ κ°λ°μclass objectμ ννμ)
{
"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)" } ]
}
}
- μ£Όμ μλ΅ Parameterλ³ λΆμ
Parameter | Type | νμ | μ€λͺ |
---|---|---|---|
code | string | O | - κ²°μ μ§ν μνκ°μΌλ‘ κ²°μ μ±κ³΅μ β0000β - β0000βμ μ μΈν μλ΅κ°μ κ²°μ μ€ν¨λ‘ μ²λ¦¬ν΄λ 무방 - κΆμ₯ : κ°λ°μ¬ μλ²(DB)μ μ μ₯ κ΄λ¦¬ νμ |
txid | string | O | - μμ€ν μ΄μμ λ°ννλ κ²°μ μ κ³ μ IDκ° - μ±κ³΅μ²λ¦¬λ κ²°μ 건μ κ²½μ° κ°λ°μμΌν°μ μ μ° νλ©΄μμλ νμΈκ°λ₯ - μ μ°, λμ¬μμ , VOC μ²λ¦¬ λ± μ΄μ μ 무μ νμ©λ¨ - νμ : κ°λ°μ¬ μλ²μ μ μ₯ κ΄λ¦¬ νμ |
receipt | string | O | - κ²°μ μ λ°νλλ κ²°μ μ μ μμμμ¦(μ μμλͺ
) κ°μΌλ‘ κ²°μ λ°μ΄ν° λ³μ‘° λ± λΆμ κ²°μ μ¬λΆ νμΈμ μ¬μ© - κ²°μ κ±΄λ³ μ μμμμ¦ λ°μ΄ν° κ°μ ν¬κΈ°λ 5K byte λ΄μΈ - κ°λ ₯ κΆκ³ : ν΄λΉκ° μ체λ₯Ό μ μ₯κ΄λ¦¬ λ° λ°λ³΅ νΈμΆλμ΄μλ μλ¨ |
product | string | O | - κ²°μ μμ μν μ 보 - κΆμ₯ : μ€μ κ°λ°μ¬μμ μΈμ§νλ μνIDμ κ°κ²©μ΄ μΌμΉνλμ§ νμΈ |
- μλ΅μ½λκ° μ°Έκ³ : AP Reference Result Code
- μ€μ§μ κ²°μ μ²λ¦¬ νλ¦
- [κ·Έλ¦Ό1]μ νλ¦κ³Ό λΉκ΅νμ¬ κ°λ°μ¬μ Appμμ ꡬ맀μμ² λ°μμ SDKμ κ²°μ APIμ νΈμΆμ΄ μλ κ°λ°μ¬μ μλ²(YourServer)μ μ¬μ©μμ κ²°μ μμ² λ΄μ©μ μ μ‘
- κ°λ°μ¬μ μλ²μμλ Userκ° μμ²ν μνμ ꡬ맀κ°λ₯ μ¬λΆ, User κ³μ μν λ±μ νμΈνμ¬ κ°λ°μ¬ μ체μ μΈ κ΅¬λ§€ Transactionμ μμ±
[κ·Έλ¦Ό2] μ€μ§μ κ²°μ μμ² νλ¦
- ꡬ맀 Transactionμ λ΄μ©μ μλμ κ° λ€λ‘ ꡬμ±λ μ μμ(κ°λ°μ¬DBμμ μ μ₯ κ΄λ¦¬ νμ)
- TID : κ°λ°μ¬μμ λ°ννλ uniqueν ꡬ맀 ID
- User(Payer) ID : κ°λ°μ¬μμ κ΄λ¦¬νλ μ¬μ©μ ID
- μν ID : pIdλ νΉμ κ°λ°μ¬μμ κ΄λ¦¬νλ μν ID
- κΈ°ν : ν맀μ μΌμμ μΌλ‘ μ€μ λ μνλͺ μ΄λ κ°κ²©
- μ£Όμμ¬ν
- κ²°μ μ§νμ€ λ¨λ§ μ체μ λ¬Έμ (리μμ€ λΆμ‘±, λ€νΈμν¬ μ΄μ λ±)λ‘ κ²°μ κ²°κ³Όλ₯Ό SDKλ‘ λΆν° μ λ¬ λ°μ§ λͺ»νλ μν©μ΄ λ°μν μ μμ
- μ νμ μΌλ‘ SDKμ ꡬ맀μ΄λ ₯ μ‘°ν, Server APIμΈ TID ꡬ맀μ΄λ ₯ μ‘°ν λ±μ νμ©νμ¬ μν νμ±ν(μ§κΈ, λ°°μ‘)λ₯Ό μν 볡ꡬ λ‘μ§μ κ°λ°μ΄ μꡬλ¨
- μνID(PID) λ³λ‘ νκ²½μ λ°λΌ ν맀κ°λ₯ μνκ° λ³λλ‘ κ΄λ¦¬λμ΄, μμ©νκ²½μμ ν맀κ°λ₯ μνκ° μλκ²½μ° κ²°μ κ° μ νλ¨
- SDKλ κ²°μ μ κ΄λ ¨λ μΆκ° APIλ₯Ό μ 곡νλ©°, μ±(λ¨λ§)μμμλ SDKμ APIλ₯Ό μ΄μ©νμ¬ μ΅μ’ μ κ²°μ μνλ₯Ό μ‘°νν μ μμ
- κ΄λ ¨ λ§ν¬
- μ 곡 API νμ : sendCommandRequest
- ꡬ맀μ΄λ ₯ API : request_purchase_history
- κΆκ³ Flow
- κ²°μ μ§νμ€ μ¬μ©μ λ¨λ§μ λΉμ μμ μ’ λ£λ‘ κ²°μ κ²°κ³Ό(response)λ₯Ό λ°μ§ λͺ»ν κ²½μ° μ¬μ©μ λ¨λ§μ Appμ μμ΄ν λ―Έμ§κΈ(λΉνμ±ν) μνκ° λ°μ κ°λ₯
- μ± μ’ λ£ν μ¬μμ μμ μ (SDKμμ μ 곡νλ) IapPlugin.sendCommandPurchaseHistory APIλ₯Ό νΈμΆνμ¬ μνIDλ³ κ΅¬λ§€μ΄λ ₯ μ·¨λν, κ°λ°μ¬μ Billing μλ²μ ꡬ맀 μ΄λ ₯κ³Ό λΉκ΅νμ¬ λ―Έμ§κΈ μνμ λν μ§κΈ 보μ κ°λ₯
[κ·Έλ¦Ό3] λ¨λ§(SDK)λ₯Ό ν΅ν κ²°μ μ΄λ ₯ μ‘°ν
- μμ² Parameter
- AppIDλ₯Ό κΈ°μ€μΌλ‘ μ 체 ꡬ맀 μ΄λ ₯ μ‘°ν κ°λ₯ (κ°λ³ μνλ³λ‘λ μ‘°νκ°λ₯)
{
"method" : "request_purchase_history",
"param" : {
"appid" : "OA12345678"
}
}
- μλ΅ Parameter
- κ΅¬λ§€κ° λ°μνμλ μνμ 리μ€νΈλ₯Ό νμΈν μ μμΌλ©°, validityκ°μ νμ©νμ¬ μ€λ³΅ ꡬ맀μ¬λΆ λ° μ¬μ© μνλ‘ νμ©μ΄ κ°λ₯νλ€. (IapPlugin.change_product_propertiesλ₯Ό ν΅νμ¬ validity κ°μ μ°¨κ° κ°λ₯)
{
"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": "μμ΄ν
μΈμ¦μ μ±κ³΅νμμ΅λλ€."
}
}]
}
}
- μ£Όμμ¬ν
- μ΄κΈ° ꡬλ μμ (loading)μ΄ μλ μ±μ μ§ν μν(μμ: κ²μμ μλλ³κ²½, μΈλ²€ν 리 μ§μ λ±)μ ν΄λΉAPIλ₯Ό λ°λ³΅μ μΌλ‘ νΈμΆνλ λ‘μ§μ κΆκ³ νμ§ μμ
μ§κΈκΉμ§ μλλ‘μ΄λ SDK μ°λμ λν΄μ μ΄ν΄λ³΄μκ³ , λ€μ λΆλΆμ μμ€ν μ΄μμ μ 곡νκ³ μλ μλ² APIμ λν λ΄μ©μ΄λ€. μλ² APIμ μ°λ μ¬λΆλ κ°λ°μ¬μ μ νμ¬νμΌλ‘ μ°λνμ§ μμλ κ²°μ μ§νμλ μν₯μ μ£Όμ§ μμΌλ μλΉμ€ μ΄μμ ν¨μ¨μ λμ΄λ μΈ‘λ©΄μμ μ°λμ κΆμ₯νλ€.
- μ μμμμ¦μ κ°λ³ κ²°μ 건μ λν μΈλΆ λ΄μ©μ μ μμλͺ (Digital Signature)κ°μΌλ‘, κ²°μ transaction μ체μ λ³μ‘° μ¬λΆ νμΈμ΄ κ°λ₯νμ¬ λΆμ μμ κ²°μ μ¬λΆμ νλ³ κ°λ₯
- ν΄λΉ κΈ°λ₯μ SDKμ Server μμΈ‘μμ λμΌ κΈ°λ₯μ APIλ₯Ό μ 곡νμ§λ§ 보μ λ° μ΄μμ± μΈ‘λ©΄μμ Server APIμ μ°λμ κΆμ₯ν¨
- μμΈμ°Έκ³ : μ μ μμμ¦ κ²μ¦ API
- κΆκ³ Flow
- 1)κ²°μ κ° μ μμ μΌλ‘ μλ£λ κ²½μ°, λ¨λ§(SDK)λ‘ λΆν° μ μμμμ¦(receipt)μ΄ μ±μΌλ‘ μ λ¬λκ³ , μ±μ ν΄λΉ λ°μ΄ν°λ₯Ό μ±μ μλ²λ‘ μ λ¬
- 2~3)μ±μλ²λ μμ€ν μ΄μ μ μμμμ¦ κ²μ¦ APIλ₯Ό ν΅νμ¬, λ¬λ§λ‘ λΆν° μ λ¬λ°μ μ μμμμ¦ λ°μ΄ν°μ μ΄μμ¬λΆλ₯Ό κ²μ¦
- 3~4)μ μμμμ¦ κ²μ¦κ²°κ³Όκ° μ΄μμ΄ μμ κ²½μ°(status=0), μμ΄ν μ§κΈ μ²λ¦¬
[κ·Έλ¦Ό4] μ μμμμ¦ κ²μ¦ νλ¦
- μ£Όμ μμ² Parameter λΆμ
- HTTP/JSON ννλ‘ μμ€ν μ΄μ κ²°μ μλΉμ€ μλ²μ μλμ κ°μ΄ μ μ‘
{
"txid":"TSTORE0004_20150515102510XXXXXXXXXXXXXXX",
"appid":"OA00012345",
"signdata":βMIIH7QYJKoZIhvcNAQcCo β¦ ozANBglghkgBZQMEA"
}
- signdata κ°μ κ²°μ μλ£ν SDKλ‘ λΆν° μλ΅λ°λ μ μμμμ¦ κ°μΌλ‘ κ²°μ μλ£ μ§ν μμ APIλ‘ κ²μ¦μ΄ μ§νλμ΄μΌ νλ©° μ΄ν λ°λ³΅μ μΈ νΈμΆμ κΆμ₯νμ§ μμ
- μ£Όμ μλ΅ Parameter λΆμ
- HTTP/JSON ννλ‘ μλ΅μ μλμ νν
{
"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"}]
}
- status=0 and detail=β0000βμΈ κ²½μ° μ μμμμ¦ λ°μ΄ν° μ체μ λ³μ‘°κ° μμμ μλ―Ένλ©°, κ°λ°μ¬κ° μΈμ§νκ³ μλ μνκ°κ²©, tid, product_id λ±μ μ 보λ₯Ό λΉκ΅νμ¬ μλ΅κ°μ λ¬Έμ κ° μλμ§ λΉκ΅ νμ(κΆκ³ )
- μ£Όμμ¬ν
- μ μμμμ¦μ κ°λ³ κ²°μ μ λν΄μ λ°νλλ κ³ μ μ μ μμλͺ κ°μΌλ‘ κ²°μ μ체μ μλ³μ‘° μ¬λΆλ₯Ό νμΈνλ μ©λλ‘ μ¬μ©λ μ μμ
- μ±κ³΅ν κ²°μ μΈ κ²½μ°μλ§ μ μμμμ¦μ΄ λ°νλλ©°, ν΄λΉ κ²°μ 건μ κ°μ₯ μ΅κ·Όμ μνλ₯Ό νμΈνλ μ©λλ‘λ μ¬μ©ν μ μμ
-
TIDλ κ²°μ λ°μμ κ°λ°μ¬μμ λ°ννλ ꡬ맀(κ²°μ ) IDλ‘ μμ€ν μ΄ κ²°μ μμ μ΄μ μμ μ μμ±λλ©° κ°λ°μ¬μμ ν΄λΉκ°μ μΈμ§νκ³ μλ€λ μ μμ, κ²°μ κ° μ±κ³΅μ μΌλ‘ μλ£λ μ΄νμ μ λ¬ λ°μ μ μλ μ μμμμ¦(μμ€ν μ΄κ° λ°ν)κ³Όλ λ€λ¦
-
κ²°μ μλ£ μμ νΉμ κ²°μ μ¬λΆ μλ£ μ¬λΆλ₯Ό μ μ μλ μμ μ TIDꡬ맀μ΄λ ₯ μ‘°ν APIλ₯Ό νΈμΆνμ¬ κ²°μ μ μ±κ³΅μ¬λΆλ₯Ό νμΈν μ μμ (κ²°μ μ΄ν νλΆ λ± λ³λ λ΄μμ νμΈ λΆκ°)
-
μ°Έκ³ λ§ν¬ : TID ꡬ맀μ΄λ ₯ μ‘°ν API
-
κΆμ₯ Flow
- κΆμ₯νλ κ²°μ μμ νΈμΆ μμ μ κ²°μ μλ£ μ§νλ‘ μ μμμμ¦ κ²μ¦κ³Ό λμΌ(κ·Έλ¦Ό4 μ°Έκ³ )
- λ¨λ§μμ κ²°μ κ²°κ³Όλ₯Ό μ λ¬ λ°μ§ λͺ»νμ¬ μ΅μ’ κ²°μ μ μνλ₯Ό κ°λ°μ¬μ μ±μ΄λ μλ²μμ μ μ μλ κ²½μ° μλμ κ°μ΄ batch λ₯Ό ν΅ν μν μ‘°ν λ° λκΈ°νκ° κ°λ₯
[κ·Έλ¦Ό5] TID ꡬ맀μ΄λ ₯ μ‘°ν
- μ¬μ©μμ λ¨λ§ νΉμ μ±μ΄ λΉμ μμ μΌλ‘ μ’ λ£λκ³ μΌμ μκ° κ²½κ³Όν μ¬κΈ°λ λλ μμ μ κ²°μ μνμ μ 보λ₯Ό μ±μλ²λ‘ λΆν° μ λ¬λ°μ ꡬ맀건μ 볡μμ΄ κ°λ₯
- μ£Όμ μ¬ν
- ν΄λΉ APIλ κ²°μ κ° μλ£λ μμ , νΉμ κ²°μ κ²°κ³Όλ₯Ό μ μ μλ μν©μ μ΅μνμ νΈμΆμ κΆκ³
- APP μ΅μ΄λ‘λ© μμ , μμ μ§μ μμ , μ¬μ©μ λ³κ²½ μμ λ± APPμ λ΄μ© νλ¦μ μ’ μμ μΈ κ²½μ° νΈλν½ κ³ΌλΆν λ° μλΉμ€ μ₯μ μμΈμΌλ‘ μμ© κ°λ₯
- μ μμμμ¦ κ²μ¦κ³Όλ μ©λκ° κ°κΈ° λλ¬Έμ μ€λ³΅μ μ¬μ©μ κΆμ₯νμ§ μμ
- μλ [κ·Έλ¦Ό6]λ μμ€ν μ΄ IAP κ²°μ μ°λμμ μ 체 κΆμ₯ Flowλ‘ κ²°μ μλ£(5)μ΄ν μ μμμμ¦ κ²μ¦μ μ νμ μ¬νμΌλ‘ κ°λ°μ¬μμ μ°λ μ¬λΆλ₯Ό κ²°μ
- λ¨λ§κ²°μ μ§ν κ³Όμ μ(3-4)μμμ λ¬Έμ λ‘ κ²°μ κ²°κ³Όλ₯Ό μ λ¬ λ°μ§ λͺ»ν κ²½μ°, TIDꡬ맀μ΄λ ₯ μ‘°νλ₯Ό ν΅νμ¬ κ²°μ μνμ 볡μμ΄ κ°λ₯
- TID ꡬ맀μ΄λ ₯ μ‘°νλ batch λ κ°λ°μ¬ CS μμ€ν μ ν΅ν μ‘°μμΌλ‘ κ²°μ μ΄λ ₯μ 볡μμ΄ μ΄λ£¨μ΄μ§λλ‘ κ΅¬νμ κ³ λ €ν΄ λ³Ό μ μμ
[κ·Έλ¦Ό6] κΆμ₯ κ²°μ νλ¦
- κ²°μ μ§νμ μ€λ₯λ‘ κ²°μ λ₯Ό ν μ¬μ©μκ° μμ΄ν μ μ§κΈ λ°μ§ λͺ»ν κ²½μ°μ λν λμμΌλ‘ μμ TID ꡬ맀μ΄λ ₯ μ‘°νλΏλ§ μλλΌ SDKμμ μ 곡νλ ꡬ맀μ΄λ ₯ μ‘°ν API (IapPlugin.request_purchase_history)λ₯Ό νμ©νμ¬ μμ΄ν λ―Έμ§κΈκ±΄μ 볡μ λ‘μ§λ κ³ λ €ν΄ λ³Ό μ μμ
- μμΈ λ΄μ©μ [SDK : μ£Όλ¬Έ μ‘°ν λ± API μ°λ] ννΈ μ°Έκ³