빌링서비스 API를 사용하여 PC SDK와 커뮤니케이션 하기 위하여, 게임에서는 아래 StovePCCallback 클래스의 콜백에 연결할 콜백함수를 정의해야 합니다.

struct StovePCCallback
{
    void(*OnError)(const StovePCError error);
    void(*OnInitComplete)();
    void(*OnToken)(const StovePCToken token);
    void(*OnUser)(const StovePCUser user);
    void(*OnOwnership)(int size, StovePCOwnership* ownership);

    // FetchTermsAgreement 처리가 완료됐을 때 호출되는 콜백
    void(*OnFetchTermsAgreement ) OnFetchTermsAgreement;

    // FetchShopCategories 처리가 완료됐을 때 호출되는 콜백
    void(*OnFetchShopCategories) OnFetchShopCategories;

    // FetchProducts 처리가 완료됐을 때 호출되는 콜백    
    void(*OnFetchProducts) OnFetchProducts;

    // StartPurchase 처리가 완료됐을 때 호출되는 콜백
    void(*OnStartPurchase) OnStartPurchase;

    // ConfirmPurchase 처리가 완료됐을 때 호출되는 콜백
    void(*OnConfirmPurchase) OnConfirmPurchase;
    
    // FetchInventory 처리가 완료됐을 때 호출되는 콜백
    void(*OnFetchInventory) OnFetchInventory;
}

Config, Callback 설정 에서와 같이 StovePCCallback 구조체의 콜백포인터 콜백함수를 연결합니다.

// StovePCCallback 구조체 instance 생성
StovePCCallback callback;
  
// 모든 함수 포인터를 NULL로 초기화
memset(&callback, 0, sizeof(StovePCCallback));
  
// 구현한 함수 포인터를 연결
callback.OnError = OnMyErrorCallback; /*전역에서 정의한 콜백함수*/
callback.OnInitComplete = OnMyInitCompleteCallback; /*전역에서 정의한 콜백함수*/
callback.OnToken = OnMyTokenCallback; /*전역에서 정의한 콜백함수*/
callback.OnUser = OnMyUserInfoCallback; /*전역에서 정의한 콜백함수*/
callback.OnOwnership = OnMyOwnershipCallback; /*전역에서 정의한 콜백함수*/

// 서비스 이용 약관
callback.OnFetchTermsAgreement = OnMyFetchTermsAgreement; /*전역에서 정의한 콜백함수*/
    
// 빌링서비스
OnFetchShopCategories = OnMyFetchShopCategories; /*전역에서 정의한 콜백함수*/
OnFetchProducts = OnMyFetchProducts; /*전역에서 정의한 콜백함수*/
OnStartPurchase = OnMyStartPurchase; /*전역에서 정의한 콜백함수*/
OnConfirmPurchase = OnMyConfirmPurchase; /*전역에서 정의한 콜백함수*/
OnFetchInventory = OnMyFetchInventory; /*전역에서 정의한 콜백함수*/

OnFetchShopCategories, OnFetchProducts, OnStartPurchase, OnConfirmPurchase, OnFetchInventory 콜백을 반드시 구현할 필요는 없습니다.

게임에서 상점이 필요한 경우만 연결하면 됩니다. 단, 상점 기능을 위해서는 5개의 콜백을 모두 구현하여 연결하여야 합니다.