Hive SDK v1.19.1부터 IAP v1의 지원을 종료합니다. Hive SDK v1.19.1 이상의 환경에서는 Hive IAP v4를 적용하시기 바랍니다.
본 가이드는 Hive IAP v1에 대해 안내하며, Hive SDK v1.19.0 이하 환경에서 적용하실 수 있습니다.

결제 방식 선택 팝업 조건 (GooglePlay-Lebi)

 

러비 구매 도식도

C2SModuleInapp_RequestBalance

  • marketTarget이 “googleplay_lebi”이고 Hive에 로그인한 경우 Lebi의 잔액을 조회한다.
argument name type desc platform 비고
uid string lebi 잔액을 확인 할 사용자의 uid Android

Result – Api.Inapp_RequestBalance

  • 요청한 uid의 러비 잔액 정보를 받는다.
argument name type desc platform 비고
uid string lebi 잔액을 확인 할 사용자의 uid Android
value int lebi 잔액 Android

 

C2SModuleInapp_Prepare

  • marketTarget이 “googleplay_lebi”일 경우 마켓을 다시 initialize 한다. (Google or Lebi)
  • 다른 마켓일 경우 Code.NotSupported 에러
argument name type desc platform 비고
useStaging bool staging서버를 사용 할 지 여부 이나 ( false로 세팅 요망) Android
pidList string array 구매에서 사용할 러비 product id의 리스트
처음에 등록해서 스토어를 통해 세부 정보를 받는다.
Android
showLog bool 로그 활성화 여부 Android
inappId string (option)package Name을 사용한다. Android
autoVerify bool (option)Hive 서버에 모듈 서버 검증을 사용한다.
Default : false
Android

Result – Api.Inapp_Prepare

  • 러비 선택 팝업에서 Gooogle Play를 선택했을 경우

  • 마켓을 Google Play로 선택했을 경우 Inapp_Prepare로 성공 콜백을 받고, Lebi 일 경우 Inapp_Description 으로 콜백을 받는다. 이 때 내용은 Lebi 마켓의 아이템 정보다.

argument name type desc platform 비고
showLog bool 로그 출력 여부 Android
useStaging bool Staging 여부 Android
list array 설정 값에 따른 array type for list Android

array type for list

argument name type desc platform 비고
argument 없음 Android

Result – Api.Inapp_Description

  • 러비 선택 팝업에서 Lebi 마켓을 선택했을 경우
  • 마켓을 Lebi로 선택했을 경우 Inapp_Description으로 콜백을 받는다. 이 때 내용은 Lebi 마켓의 아이템 정보다.
argument name type desc platform 비고
“list” array 설정값에 따라 array type for list 가 변경. all

array type for list

argument name type desc platform 비고
pid string product id
formattedString string xxx (예: “₩1,000” )
localizedTitle string
localizedDescription string
currencyCode string 통화코드 – formattedString과 동일한 Code를 내려줌
ISO 4217 currency code (현재 Apple App Store, Google Play만 지원)
iOS
Android

 

C2SModuleInapp_Restore

  • 상품 구매 과정에서 여러가지 상황으로 인하여 아이템 지급을 실패하거나 취소되는 경우가 발생할 수 있다. 이런 상황을 대비하기 위해서는 미 지급된 아이템의 영수증 정보를 요청해야 한다.
  • 이전에 완료(finish)되지 않은 구매를 복구하여 사용자에게 전달한다. 이전 구매 상태에 따라 통지가 없을 수 있다.
  • 플레이스토어에서 프로모션 코드를 넣을 수 있는데, 게임이 종료된 상태에서도 과금이 가능하다. 이를 체크하기 위해서는 게임 초기화 후 필요한 특정 시점에 restore() 메서드를 호출해주면 된다.
  • restore() 메서드를 호출한 결과 값이 SUCCESS가 아닌 경우 게임에서 처리하지 않아도 된다.
argument name type desc platform 비고
argument 없음 all

Result – Api.Inapp_Restore

  • 복구한 아이템에 대한 정보를 받는다.
  • Api.Inapp_Purchase와 같은 형식으로 데이터가 내려온다.
argument name type desc platform 비고
pid string product id all
quantity int 수량 all
receipt map 영수증 데이터 all

key-value for receipt

argument name type desc platform 비고
“APPLE_RECEIPT” string Apple iOS
“TSTORE_TRANSACTION” string T store Android
“OLLEHMARKET_TRANSACTIONID” string olleh market Android
“OLLEHMARKET_DATELOCAL” string olleh market Android
“OZSTORE_DATELOCAL” string oz store Android
“THIRDPARTY_ORDERKEY” string third party (Google checkout) Android
“QIIP_DATELOCAL” string qiip Android
“HAMI_DATELOCAL” string hami Android
“LEBI_BILLINGNUM” string Lebi Android
“PLASMA_PAYMENTID” string samsung apps plasma Android
“PLASMA_PURCHASEID” string samsung apps plasma Android
“PLASMA_ITEMID” string samsung apps plasma Android
“PLASMA_VERIFYURL” string samsung apps plasma Android
“PLASMA_PARAM1” string samsung apps plasma Android
“PLASMA_PARAM2” string samsung apps plasma Android
“PLASMA_PARAM3” string samsung apps plasma Android
“PLASMA_PURCHASEDATE” string samsung apps plasma Android
“AMAZON_PRODUCTID” string amazon Android
“AMAZON_USERID” string amazon Android
“AMAZON_RECEIPTID” string amazon Android
“AMAZON_REQUESTID” string amazon Android
“AMAZON_MARKETPLACE” string amazon Android
“KDDI_TRANSACTION” string kddi Android
“KDDI_SIGNATURE” string kddi Android
“MM_ORDERID” string mm Android
“MM_PURCHASEDATE” string mm Android
“MBIZ_EMONEY” string mbiz Android
“MBIZ_PURCHASEDATE” string mbiz Android
“GOOGLEPLAY_RECEIPT” string Google Android
“GOOGLEPLAY_SIGNATURE” string Google Android

 

C2SModuleInapp_Purchase

  • 상품을 구매 한다.
argument name type desc platform 비고
pid string 구매 할 product id all
quantity int 구매할 아이템 수량
구글 : managed = 0, 소모성 아이템 = 1 (현재는 managed로 등록한 아이템을 소모성 아이템으로 사용하고 있으므로 큰 의미가 없는 값)
아마존, 러비, 원스토어, … : 구매 요청 시 넣어준 quantity의 값 (현재 사용하지 않는 기능)
all
addtionalInfo string (option) 게임서버가 여러 개일 경우 구매로그에 추가적인 정보가 필요할 경우 사용한다. 서버 구분의 경우 server_id라는 키로 jsonstring 형식으로 넣는다.
예){“server_id”:”some info”}서버 지역 코드값은 ‘ISO 3166 alpha-2’ 코드를 기준으로 하며 Hive 연동 가이드라인 게임서버 ID 항목을 참고한다.
all

Result – Api.Inapp_Purchase

  • 구매한 아이템에 대한 정보를 받는다.
  • Api.Inapp_Restore와 같은 형식으로 데이터가 내려온다.
argument name type desc platform 비고
pid string product id all
quantity int 수량
구글 : managed = 0, 소모성 아이템 = 1 (현재는 managed로 등록한 아이템을 소모성 아이템으로 사용하고 있으므로 큰 의미가 없는 값)
아마존, 러비, 원스토어, … : 구매 요청 시 넣어준 quantity의 값 (현재 사용하지 않는 기능)
all
receipt map 영수증 데이터 all

key-value for receipt

argument name type desc platform 비고
“APPLE_RECEIPT” string Apple iOS
“TSTORE_TRANSACTION” string T store Android
“OLLEHMARKET_TRANSACTIONID” string olleh market Android
“OLLEHMARKET_DATELOCAL” string olleh market Android
“OZSTORE_DATELOCAL” string oz store Android
“THIRDPARTY_ORDERKEY” string third party (google checkout) Android
“QIIP_DATELOCAL” string qiip Android
“HAMI_DATELOCAL” string hami Android
“LEBI_BILLINGNUM” string Lebi Android
“PLASMA_PAYMENTID” string samsung apps plasma Android
“PLASMA_PURCHASEID” string samsung apps plasma Android
“PLASMA_ITEMID” string samsung apps plasma Android
“PLASMA_VERIFYURL” string samsung apps plasma Android
“PLASMA_PARAM1” string samsung apps plasma Android
“PLASMA_PARAM2” string samsung apps plasma Android
“PLASMA_PARAM3” string samsung apps plasma Android
“PLASMA_PURCHASEDATE” string samsung apps plasma Android
“AMAZON_PRODUCTID” string amazon Android
“AMAZON_USERID” string amazon Android
“AMAZON_RECEIPTID” string amazon Android
“AMAZON_REQUESTID” string amazon Android
“AMAZON_MARKETPLACE” string amazon Android
“KDDI_TRANSACTION” string kddi Android
“KDDI_SIGNATURE” string kddi Android
“MM_ORDERID” string mm Android
“MM_PURCHASEDATE” string mm Android
“MBIZ_EMONEY” string mbiz Android
“MBIZ_PURCHASEDATE” string mbiz Android
“GOOGLEPLAY_RECEIPT” string Google Android
“GOOGLEPLAY_SIGNATURE” string Google Android

 

C2SModuleInapp_Finish

  • 구매한 상품의 완료를 알린다.
  • 과금 이벤트 트래킹을 위해 과금 성공 후 다음과 같이 Inapp Finish에 Argument를 추가하여야 한다.
argument name type desc platform 비고
isPurchaseSuccess bool isPurchaseSuccess 는 마케팅 트래킹 로그(PartyTrack, Adjust) 전송 여부를 나타낸다.
따라서 과금이 실제로 성공한 Finish일 경우에만 true로 설정한다.
default : false.
all 1.7.1+

Result – Api.Inapp_Finish

  • 구매한 상품이 완료 처리 되면 오는 콜백이다.
argument name type desc platform 비고
argument 없음 all

 

샘플 코드

Unity3d:C2SModule.Inapp.RequestBalance
public static bool C2SModule.Inapp.RequestBalance(C2SModule.Parameter arg, out C2SModule.Error error);
public static bool C2SModule.Inapp.RequestBalance(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
Overview

– marketTarget이 “googleplay_lebi”일 경우 러비의 잔액을 요청한다.
(요청 하기 위해서는 Hive에 로그인 되어 있어야 한다.)

Unity3d:C2SModule.Inapp.Prepare
public static bool C2SModule.Inapp.Prepare(C2SModule.Parameter arg, out C2SModule.Error error);
public static bool C2SModule.Inapp.Prepare(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
Overview

– Hive 에서는 과금 방식을 2가지 이상 사용할 수 있도록 지원을 하는데 이 때 과금 방식이 Lebi 일 경우
사용하는 함수 (Initialize 시 inapp모듈의 margetTarget = “googleplay_lebi”)
Lebi 란 중국 본토 내에서 InApp 과금 처리를 위해 자사에서 만든 모듈로서 러비(Lebi)라는 단위의 화폐를 충전하여 사용하는 방식이다.
만약 Google Play 마켓의 과금 방식만을 사용하는 경우 Prepare 함수를 호출 할 필요가 없다.

Unity3d:C2SModule.Inapp.Restore
public static bool C2SModule.Inapp.Restore(C2SModule.Parameter arg, out C2SModule.Error error);
public static bool C2SModule.Inapp.Restore(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
Overview

– 이전에 finish 되지 않은 구매를 복구하여 사용자에게 전달. 이전 구매 상태에 따라 통지가 없을 수 있다.

Unity3d:C2SModule.Inapp.Purchase
public static bool C2SModule.Inapp.Purchase(C2SModule.Parameter arg, out C2SModule.Error error);
public static bool C2SModule.Inapp.Purchase(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
Overview

– 상품을 구매 한다.

Unity3d:C2SModule.Inapp.Finish
public static bool C2SModule.Inapp.Finish(C2SModule.Parameter arg, out C2SModule.Error error);
public static bool C2SModule.Inapp.Finish(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
Overview

– 구매한 상품의 완료를 알린다.

Unreal:HiveSDKUEInapp_RequestBalance
void HiveSDKUEInapp_RequestBalance(FString fstrJson);
Overview

– marketTarget이 “googleplay_lebi”일 경우 러비의 잔액을 요청한다.
(요청 하기 위해서는 Hive에 로그인 되어 있어야 한다.)

Unreal:HiveSDKUEInapp_Prepare
void HiveSDKUEInapp_Prepare(FString fstrJson);
Overview

– Hive 에서는 과금 방식을 2가지 이상 사용할 수 있도록 지원을 하는데 이 때 과금 방식이 Lebi 일 경우
사용하는 함수 (Initialize 시 inapp모듈의 margetTarget = “googleplay_lebi”)
Lebi 란 중국 본토 내에서 InApp 과금 처리를 위해 자사에서 만든 모듈로서 러비(Lebi)라는 단위의 화폐를 충전하여 사용하는 방식이다.
만약 Google Play 마켓의 과금 방식만을 사용하는 경우 Prepare 함수를 호출 할 필요가 없다.

Unreal:HiveSDKUEInapp_Restore
void HiveSDKUEInapp_Restore(FString fstrJson);
Overview

– 이전에 finish 되지 않은 구매를 복구하여 사용자에게 전달. 이전 구매 상태에 따라 통지가 없을 수 있다.

Unreal:HiveSDKUEInapp_Purchase
void HiveSDKUEInapp_Purchase(FString fstrJson);
Overview

– 상품을 구매 한다.

Unreal:HiveSDKUEInapp_Finish
void HiveSDKUEInapp_Finish(FString fstrJson);
Overview

– 구매한 상품의 완료를 알린다.

iOS
러비는 iOS에서 지원하지 않음
Cocos2d-x:C2SModuleInapp_RequestBalance
bool C2SModuleInapp_RequestBalance(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError*
pkError, C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
Overview

– marketTarget이 “googleplay_lebi”일 경우 러비의 잔액을 요청한다.
(요청 하기 위해서는 Hive에 로그인 되어 있어야 한다.)

Cocos2d-x:C2SModuleInapp_Prepare
bool C2SModuleInapp_Prepare(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
Overview

– Hive 에서는 과금 방식을 2가지 이상 사용할 수 있도록 지원을 하는데 이 때 과금 방식이 Lebi 일 경우
사용하는 함수 (Initialize 시 inapp모듈의 margetTarget = “googleplay_lebi”)
Lebi 란 중국 본토 내에서 InApp 과금 처리를 위해 자사에서 만든 모듈로서 러비(Lebi)라는 단위의 화폐를 충전하여 사용하는 방식이다.
만약 Google Play 마켓의 과금 방식만을 사용하는 경우 Prepare 함수를 호출 할 필요가 없다.

Cocos2d-x:C2SModuleInapp_Restore
bool C2SModuleInapp_Restore(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
Overview

– 이전에 finish 되지 않은 구매를 복구하여 사용자에게 전달. 이전 구매 상태에 따라 통지가 없을 수 있다.

Cocos2d-x:C2SModuleInapp_Purchase
bool C2SModuleInapp_Purchase(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
Overview

– 상품을 구매 한다.

Cocos2d-x:C2SModuleInapp_Finish
bool C2SModuleInapp_Finish(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
Overview

– 구매한 상품의 완료를 알린다.