Hive SDK v1.19.1부터 IAP v2의 지원을 종료합니다. Hive SDK v1.19.1 이상의 환경에서는 Hive IAP v4를 적용하시기 바랍니다.
본 가이드는 Hive IAP v2에 대해 안내하며, Hive SDK v1.19.0 이하 v1.9.0 이상에서 적용하실 수 있습니다.
C2SModuleHiveIAP_CheckPromotePurchase
- 앱스토어에서 구매 요청이 들어온 market pid 값에 일치하는 game pid 값을 요청한다.
- market pid 와 game pid가 1:1 매칭이 되어야 정확한 값을 얻을 수 있다.
- API 호출 전에 shopInfo API를 locationCode “DEFAULT”로 호출해야 한다.
앱스토어로부터 delegate로 market pid를 전달받았을 때 state = “enable” 값을 전역콜백으로 준다.
해당 콜백을 받고 shopInfo API를 호출한 이후, CheckPromotePurchase API를 호출해야 정상적으로 game pid를 전달받을 수 있으며 저장된 pid가 없을 땐 NotOwned(-306) error를 전달한다. 한번 전달된 pid는 메모리에서 삭제되어 재전달되지 않기 때문에 콜백 이후엔 따로 pid 관리가 필요하다.
Request
argument name | type | description | platform | 비고 |
---|---|---|---|---|
argument 없음 | iOS |
Response
argument name | type | description | platform | 비고 |
---|---|---|---|---|
state | string | “enable” 앱스토어로부터 market pid를 전달받았을 때 전역콜백으로 전달 |
iOS | |
API 호출 시 | ||||
pid | string | product id | iOS |
샘플 코드
API Reference: C2SModule.HiveIAP.CheckPromotePurchase
- public static bool C2SModule.HiveIAP.CheckPromotePurchase(C2SModule.Parameter arg, out C2SModule.Error error);
- public static bool C2SModule.HiveIAP.CheckPromotePurchase(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
1 2 3 4 5 6 7 8 |
public void hiveIAPCheckPromotePurchase(string pid,Action completionHandler) { C2SError error; C2SParameter arg = new C2SParameter (); C2SModule.HiveIAP.CheckPromotePurchase(arg,out error,(C2SParameter resultArg,C2SError resultError) => { completionHandler(resultError); }); } |
API Reference: HiveSDKUEHiveIAP_CheckPromotePurchase
- void HiveSDKUEHiveIAP_CheckPromotePurchase(FString fstrJson);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
FString empty; FHiveSDKModule::Get().HiveSDKUEHiveIAP_CheckPromotePurchase(empty); // 요청시 입력값 없음 #if PLATFORM_IOS || PLATFORM_ANDROID void MYGAMECLASS::ResultDelegate(C2SModuleApi api, const char* json, C2SModuleErrorCode code, const char* message) { //... switch(api) { case C2SModuleApi_HiveIAPCheckPromotePurchase: { if(code == 0) { // success. } break; } } //... } #endif |
API Reference: C2SModuleHiveIAP_CheckPromotePurchase
- bool C2SModuleHiveIAP_CheckPromotePurchase(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// CheckPromotePurchase API는 iOS에서만 사용 가능합니다. void SampleProject::menuInappCheckPromotePurchaseCallback(cocos2d::Ref* pSender) { C2SModule_Cocos2dx::C2SModuleError error; // CheckPromotePurchase 요청시 입력값은 없음 if( C2SModuleHiveIAP_CheckPromotePurchase( (char*)NULL, &error ) == false ) { CCLog( "====>>>> C2SModuleHiveIAP_CheckPromotePurchase error (%s)", error.get()->GetMessage() ); } } void SampleProject::ResultDelegate(C2SModuleApi api, const char* json, C2SModuleErrorCode code, const char* message) { case C2SModuleApi_HiveIAPCheckPromotePurchase: { if(code == 0) { // success. } } break; } |
API Reference: C2SModuleHiveIAP CheckPromotePurchase
- +(BOOL)CheckPromotePurchase:(id)arg error:(NSError**)error;
- +(BOOL)CheckPromotePurchase:(id)arg error:(NSError**)error completionHandler:(void(^)(NSDictionary *, NSError*))
completionHandler;
1 2 3 4 5 6 7 8 9 10 11 |
-(void)checkPromotePurchaseIAP:(NSString*)pid completionHandler:(void(^)(NSString *pid,NSError* error))completionHandler { NSError* error; [C2SModuleHiveIAP CheckPromotePurchase: nil error:&error completionHandler:^(NSDictionary* resultArg, NSError* resultError) { if(resultError ==nil){ //succeed } completionHandler(pid,resultError); }]; } |