HIVE SDK for C++

HIVE_IAPV4.h
1
19#ifndef __HIVE_IAPV4_H__
20#define __HIVE_IAPV4_H__
21
22#include "HIVE_ResultAPI.h"
23#include <memory>
24
25NS_HIVE_BEGIN
26
27
34enum class IAPV4Type {
35 NotSelected = 0
36 ,AppleAppStore = 1
37 ,GooglePlayStore = 2
38 ,HIVELebi = 3
39 ,OneStore = 4
40 ,AmazonAppStore = 5
41 ,SamsungGalaxyStore = 6
42 ,HuaweiAppGallery = 7
43 ,Funtap = 8
44 ,OPPOAppMarket = 9
45 ,VIVOAppStore = 10
46 ,TencentMyapp = 11
47 ,XiaomiAppStore = 12
48 ,HuaweiAppGalleryChina = 13
49 ,FacebookCloudGame = 14 // deprecated
50 ,HiveStore = 15
51 ,Steam = 16
52 ,Nowgg = 17
53};
54
55class IAPV4Product;
56class IAPV4Receipt;
57class IAPV4PurchaseParam;
58class IAPV4ConsumeInfoUserAgreement;
59
60
77class HIVESDK_DLLEXPORT IAPV4 {
78public:
79
100 typedef std::function<void(ResultAPI const & result,std::vector<IAPV4Type> const & marketIDs)> onMarketConnect;
101
122 typedef std::function<void(ResultAPI const & result,std::vector<IAPV4Product> const & iapV4ProductList,unsigned int balance)> onGetProductInfo;
123
124
148 typedef std::function<void(ResultAPI const & result,IAPV4Receipt const & iapV4Receipt)> onPurchase;
149
172 typedef std::function<void(ResultAPI const & result,std::vector<std::reference_wrapper<IAPV4Receipt>> const & iapv4ReceiptList)> onRestore;
173
192 typedef std::function<void(ResultAPI const & result,std::string marketPid)> onTransactionFinish;
193
194 typedef std::function<void(ResultAPI const& result, const char* marketPid)> onTransactionFinishWithChar;
195
203 typedef std::function<void(ResultAPI const & result,std::string marketPid)> onCheckPromotePurchase;
204
205
222 typedef std::function<void(std::vector<ResultAPI> const & resultList,std::vector<std::string> const & marketPidList)> onTransactionMultiFinish;
223
224
241 typedef std::function<void(ResultAPI const & result, int balance)> onBalance;
242
250 typedef std::function<void(int responseCode)> onInAppMessages;
251
268 typedef std::function<void(ResultAPI const & result, IAPV4ConsumeInfoUserAgreement* const info)> onGetConsumeInfoAgreement;
269
286 typedef std::function<void(ResultAPI const & result, bool didAgree)> onShowConsumeInfoAgreement;
287
306 static void marketConnect(onMarketConnect listener);
307
322 static void getMarketProductInfo(std::vector<std::string> const & marketPidList, onGetProductInfo listener);
323
338 static void getProductInfo(onGetProductInfo listener);
339
356
379 static void purchase(std::string marketPid,std::string iapPayload,onPurchase listener);
380
405 static void purchase(std::string marketPid,std::string iapPayload,int quantity,onPurchase listener);
406
434 static void purchaseSubscriptionUpdate(std::string marketPid,std::string oldMarketPid,std::string iapPayload,onPurchase listener);
435
459 static void purchaseSubscription(IAPV4PurchaseParam param, onPurchase listener);
460
479 static void restore(onRestore listener);
480
500 static void restoreSubscription(onRestore listener);
501
529 static void transactionFinish(std::string marketPid,onTransactionFinish listener);
530
558 static void transactionMultiFinish(std::vector<std::string> const & marketPidList,onTransactionMultiFinish listener);
559
577
592 static void getBalanceInfo(onBalance listener);
593
608 static void showCharge(onBalance listener);
609
624
635
646 static std::string getAccountUuid();
647
660 static void showInAppMessages(int categoryId, onInAppMessages listener);
661
671
681
682
683 static void executeEngine(picojson::value jsonParam);
684};
685
692class HIVESDK_DLLEXPORT IAPV4Product{
693public:
694 IAPV4Product();
695 IAPV4Product(picojson::value const& jsonParam);
696
697 std::string productType;
698 std::string marketPid;
699 std::string currency;
700 double price;
701 std::string displayPrice;
702 std::string title;
703 std::string productDescription;
704 std::string originalMarketJson;
705
706 //Price before Promotion Sale
707 std::string displayOriginalPrice;
716 std::string iconURL;
718};
719
730class HIVESDK_DLLEXPORT IAPV4Receipt{
731public:
732 static std::shared_ptr<IAPV4Receipt> create(picojson::value const& jsonParam);
733 IAPV4Receipt();
734 virtual ~IAPV4Receipt();
735
736
739 std::string iapPayload;
741 std::string hiveiapReceipt;
742 std::string bypassInfo;
744
745 static IAPV4Type getIAPV4TypeFromJson(picojson::value const& jsonParam);
746
747protected:
748 IAPV4Receipt(picojson::value const& jsonParam);
749};
750
751class HIVESDK_DLLEXPORT IAPV4PurchaseParam{
752public:
753 std::string marketPid;
754 std::string iapPayload;
755 std::string oldMarketPid;
756 std::string offerToken;
757
758 IAPV4PurchaseParam();
759 IAPV4PurchaseParam(picojson::value jsonParam);
760
761 picojson::object toJson() const;
762 std::string toString() const;};
763
764class HIVESDK_DLLEXPORT IAPV4ConsumeInfoUserAgreement{
765public:
766 bool didAgree;
767 int64_t firstAnsweredDate;
768 int64_t lastAnsweredDate;
769
770 IAPV4ConsumeInfoUserAgreement();
771 IAPV4ConsumeInfoUserAgreement(picojson::value const jsonParam);
772};
773NS_HIVE_END
774
775#endif /* __HIVE_IAPV4_H__ */
현재 Hive IAP 가 제공하는 결제 마켓은 애플 앱스토어, 구글 플레이스토어, 원스토어, 삼성 갤럭시스토어, 아마존 앱스토어, 페이스북 클라우드 게임,...
Definition: HIVE_IAPV4.h:77
HIVE IAP 백오피스에서 생성한 상품 정보 마켓에 등록된 상품(Market Pid) 의 정보를 포함한다.
Definition: HIVE_IAPV4.h:692
purchase(String, String, IAPV4PurchaseListener) 나 restore(IAPV4RestoreListener) API 에서 받을 수 있는 결과 정보.
Definition: HIVE_IAPV4.h:730
Definition: HIVE_ResultAPI.h:64
static void getProductInfo(onGetProductInfo listener)
HIVE IAPV4 에서 상품의 구성을 위한 정보를 조회할 수 있다.
std::string iapPayload
구매 요청시 추가로 입력받은 iapPayload.
Definition: HIVE_IAPV4.h:739
static void transactionMultiFinish(std::vector< std::string > const &marketPidList, onTransactionMultiFinish listener)
HIVE IAP v4에서 지급이 완료된 상품에 대한 구매 영수증에 대한 복수 개의 트랜잭션 완료 처리를 요청한다.
static void getBalanceInfo(onBalance listener)
러비 상점일 경우 잔액 정보 조회.
static void transactionFinish(std::string marketPid, onTransactionFinish listener)
HIVE IAP v4에서 지급이 완료된 상품에 대한 구매 영수증에 대한 트랜잭션 완료 처리를 요청한다.
std::function< void(ResultAPI const &result, std::vector< IAPV4Type > const &marketIDs)> onMarketConnect
HIVE IAPV4 에서 마켓의 구성을 위한 정보 조회 결과 통지
Definition: HIVE_IAPV4.h:100
static void restoreSubscription(onRestore listener)
HIVE IAPV4 상품에 대한 미지급된 구독 상품 지급을 요청한다.
int quantity
상품 갯수 (Google Play 다중 구매 지원)
Definition: HIVE_IAPV4.h:743
static void purchase(std::string marketPid, std::string iapPayload, int quantity, onPurchase listener)
App Store, Google Store 등 에 등록된 마켓 상품(marketPid)의 구매를 요청 한다.
std::function< void(ResultAPI const &result, IAPV4Receipt const &iapV4Receipt)> onPurchase
상품 결제 시도 결과 통지 App Store, Google Store 등 에 등록된 마켓 상품(marketPid)의 구매를 요청 한다.
Definition: HIVE_IAPV4.h:148
IAPV4Type type
영수증 마켓 정보
Definition: HIVE_IAPV4.h:737
int coinsReward
상품 아이콘 (512x512) Google Only
Definition: HIVE_IAPV4.h:717
IAPV4Product product
구매 성공한 상품 정보
Definition: HIVE_IAPV4.h:738
std::string displayPrice
상품 가격 문자열 (ex. $100.00)
Definition: HIVE_IAPV4.h:701
std::string originalMarketJson
마켓에 등록된 원본 상품 정보
Definition: HIVE_IAPV4.h:704
std::string hiveiapReceipt
bypassInfo가 IAP서버 영수증 검증 요청시 보낼 데이터
Definition: HIVE_IAPV4.h:741
static void getMarketProductInfo(std::vector< std::string > const &marketPidList, onGetProductInfo listener)
Apple Appstore 에서 상품의 구성을 위한 정보를 조회할 수 있다.
static void marketConnect(onMarketConnect listener)
IAPV4 결재 API 초기화 요청 HIVE IAPV4 의 초기화를 수행하면 결과 통지시 사용 가능한 마켓 정보의 목록을 전달하게 된다.
std::function< void(int responseCode)> onInAppMessages
Google In-App Offers
Definition: HIVE_IAPV4.h:250
std::string productDescription
상품 설명
Definition: HIVE_IAPV4.h:703
IAPV4Type
결제 마켓 형태
Definition: HIVE_IAPV4.h:34
std::function< void(ResultAPI const &result, std::string marketPid)> onTransactionFinish
HIVE IAP v4에서 상품에 대한 지급 완료 후 결제 트랜잭션을 종료하기 위한 요청 결과 통지
Definition: HIVE_IAPV4.h:192
static void purchaseSubscription(IAPV4PurchaseParam param, onPurchase listener)
App Store, Google Store 등 에 등록된 마켓 상품(marketPid)의 구매를 요청 한다.
static void showCharge(onBalance listener)
러비 충전 페이지 노출
double price
상품 가격
Definition: HIVE_IAPV4.h:700
std::string productType
consumable, subscription
Definition: HIVE_IAPV4.h:697
static IAPV4Type getSelectedMarket()
현재 선택된 마켓 타입을 반환한다.
static void purchaseSubscriptionUpdate(std::string marketPid, std::string oldMarketPid, std::string iapPayload, onPurchase listener)
App Store, Google Store 등 에 등록된 마켓 상품(marketPid)의 구매를 요청 한다.
std::function< void(ResultAPI const &result, int balance)> onBalance
HIVE 러비 상점일 경우 잔액 확인 결과 통지
Definition: HIVE_IAPV4.h:241
static std::string getAccountUuid()
현재 계정의 UUIDv3 값을 반환한다.
std::function< void(ResultAPI const &result, std::vector< IAPV4Product > const &iapV4ProductList, unsigned int balance)> onGetProductInfo
HIVE IAPV4 상품 정보 조회 결과 통지
Definition: HIVE_IAPV4.h:122
std::string currency
통화 코드 (ex, KRW / USD)
Definition: HIVE_IAPV4.h:699
std::function< void(ResultAPI const &result, std::string marketPid)> onCheckPromotePurchase
Definition: HIVE_IAPV4.h:203
static void getConsumeInfoAgreement(onGetConsumeInfoAgreement listener)
소비정보 전송 약관에 대한 유저의 마지막 동의 상태 및 시기를 반환한다.
static void showInAppMessages(int categoryId, onInAppMessages listener)
Google In-App Offers
static void showConsumeInfoAgreement(onShowConsumeInfoAgreement listener)
소비정보 전송 약관 팝업을 노출한다.
static void showMarketSelection(onMarketConnect listener)
러비 상점이나 구글 상점을 선택하기 위한 창을 띄운다.
std::string marketPid
마켓에 등록된 고유 상품 ID
Definition: HIVE_IAPV4.h:698
double originalPrice
세일전 가격 문자열 Google, Apple Only
Definition: HIVE_IAPV4.h:708
std::function< void(std::vector< ResultAPI > const &resultList, std::vector< std::string > const &marketPidList)> onTransactionMultiFinish
HIVE IAP v4에서 상품에 대한 지급 완료 후 복수 개의 결제 트랜잭션을 종료하기 위한 요청 결과 통지
Definition: HIVE_IAPV4.h:222
static void purchase(std::string marketPid, std::string iapPayload, onPurchase listener)
App Store, Google Store 등 에 등록된 마켓 상품(marketPid)의 구매를 요청 한다.
std::function< void(ResultAPI const &result, IAPV4ConsumeInfoUserAgreement *const info)> onGetConsumeInfoAgreement
소비정보 전송 약관에 대한 유저의 마지막 동의 여부 및 시기를 통지
Definition: HIVE_IAPV4.h:268
static void restore(onRestore listener)
HIVE IAPV4 상품에 대한 미지급된 아이템 지급을 요청한다.
std::function< void(ResultAPI const &result, bool didAgree)> onShowConsumeInfoAgreement
소비정보 전송 약관 팝업을 띄운 후 유저의 동의 여부를 통지
Definition: HIVE_IAPV4.h:286
static void getSubscriptionProductInfo(onGetProductInfo listener)
HIVE IAPV4 에서 구독형 상품의 구성을 위한 정보를 조회할 수 있다.
std::string title
상품 타이틀
Definition: HIVE_IAPV4.h:702
std::function< void(ResultAPI const &result, std::vector< std::reference_wrapper< IAPV4Receipt > > const &iapv4ReceiptList)> onRestore
HIVE IAPV4 상품에 대한 미지급된 아이템 지급을 요청 결과 통지 상품 구매 과정에서 여러가지 상황으로 인하여 아이템 지급을 실패하는 경우가 발생할 수 있다.
Definition: HIVE_IAPV4.h:172
std::string iconURL
세일전 가격 Google, Apple Only
Definition: HIVE_IAPV4.h:716
static void checkPromotePurchase(onCheckPromotePurchase listener)
Apple AppStore Promote InApp Purchase 동작으로 얻어온 MarketPID를 요청한다.
Copyright © Com2uS Platform Corporation. All Right Reserved. 이용약관 개인정보 처리방침