지원 프로그램
home
슬기로운 데모생활
home

IAP 초기화

1. Initialize IAP with Shopkey

게임에서 PCSDK 를 사용해서 빌링서비스를 제공하기로 결정하였다면, 스토브에서 발급된 상점키 ShopKey 인자값으로 StovePC_IAPInit 함수로 빌링 초기화를 시도합니다.
빌링초기화 시도시 스토브 플랫폼에 등록된 상품리스트를 자동으로 조회한 후 스토브 PCSDK 내부 캐시에 저장을 합니다.
StovePC_IAPInit을 호출하고 실패하였다면 StovePCResultOnError 콜백으로 에러내용을 전달합니다.
// 입력 파라미터 // char* shopKey : 스토브에서 발급받은 shopKey StovePCResult result = StovePC_IAPInit(YOUR_SHOP_KEY); if(result == StovePCResult::STOVE_PC_NO_ERROR) { // 성공 처리 }
C++
복사
겪을 수 있는 ExternalErrors 를 안내드립니다.
ExternalError
설명
500
Internal Server Error ⇒ 스토브 담당자에게 문의 부탁드립니다.
50001
상점이 존재하지 않거나, 점검 중 ⇒ 스튜디오 내 상점이 On/Off 상태인지 확인 부탁드립니다. 만약에 On 상태라면, 스토브 담당자에게 문의 부탁드립니다.
50002
상품이 존재 하지 않거나 판매 불가능 상품 ⇒ 스튜디오 내 상품의 등록 여부, On/Off 상태, 판매 기간을 확인 부탁드립니다. 만약 모두 정상이라면, 스토브 담당자에게 문의 부탁드립니다.
999999
정의되지 않은 오류 ⇒ 스토브 담당자에게 문의 부탁드립니다.

2. 게임프로필 설정

스토브 유저는 총 3가지 종류의 유저 구분 번호를 가질 수 있습니다. 1) Character No. ⇒ 게임 내 캐릭터별 번호 (옵션) 2) GUID ⇒ 각 게임별로 발급되는 회원번호 3) Member No. ⇒ 스토브 공통 회원번호 이는 상품 구매 주체의 수준을 결정하기 위함입니다. PC SDK는 상품 구매 주체의 우선순위를 아래와 같이 매깁니다. - Character No. > GUID > Member No.
StovePC_SetGameProfile 함수를 통해 캐릭터 정보가 설정되면 PC SDK는 상품 구매시 Character No.를 기준으로 구매를 진행합니다.
반면에 StovePC_SetGameProfile 함수를 통해 캐릭터 정보가 설정되지 않은 경우, PC SDK는 Guid 또는 Member No.를 기준으로 구매를 진행합니다. 따라서 상품 구매시 상품 구매 주체가 잘 적용되도록 하려면 PC SDK의 빌링서비스 API를 호출하기 전에 StovePC_SetGameProfile API 호출 여부를 고려해야 합니다.
일반적으로 StovePC_SetGameProfile 함수는 월드/캐릭터 변경시마다 1회만 호출하면 됩니다.

3. 서비스 이용 약관 동의 여부 조회

StovePC_FetchTermsAgreement 메서드로 해당 게임에 대한 사용자의 서비스 이용 약관 동의 정보를 조회합니다.
StovePCResult result = StovePC.FetchTermsAgreement(); if(result == StovePCResult.NoError) { // 성공 처리 }
C++
복사
StovePC_FetchTermsAgreement 메서드가 정상적으로 처리되면 OnFetchTermsAgreement 콜백이 호출됩니다.
콜백에 전달되는 StovePCTermsAgreement 구조체에는 약관 동의에 대한 메타정보가 포함되어 있습니다.
StovePCShopCategory.GameId: 게임 아이디
StovePCShopCategory.Result : 서비스 이용 약관 동의 여부
StovePCShopCategory.Region: 권역 코드
StovePCShopCategory.AgreementUrl : 서비스 약관 동의 동의 페이지 Url
private void OnFetchTermsAgreement(StovePCTermsAgreement termsAgreement) { StringBuilder sb = new StringBuilder(); sb.AppendLine("OnFetchTermsAgreement"); sb.AppendFormat(" - termsAgreement.GameId : {0}" + Environment.NewLine, termsAgreement.GameId); sb.AppendFormat(" - termsAgreement.Result : {0}" + Environment.NewLine, termsAgreement.Result.ToString()); sb.AppendFormat(" - termsAgreement.Region : {0}", termsAgreement.Region); sb.AppendFormat(" - termsAgreement.AgreementUrl : {0}", termsAgreement.AgreementUrl); Debug.Log(sb.ToString()); if(termsAgreement.Result == false) { // 외부 브라우저 열기 Application.OpenURL(termsAgreement.AgreementUrl); } }
C++
복사
StovePC_FetchTermsAgreement 메서드가 실행중에 오류가 발생하면 OnError 콜백이 호출됩니다.
StovePCError 구조체의 ExternalError 필드를 통해 외부 오류를 확인할 수 있습니다.
ExternalError
설명
400
잘못된 요청 정보 ⇒ 스토브 담당자에게 문의 부탁드립니다.
500
시스템 에러 ⇒ 스토브 담당자에게 문의 부탁드립니다.
70898
유효하지 않은 데이터 ⇒ 스토브 담당자에게 문의 부탁드립니다.
70899
파라미터에 유효하지 않은 값이 존재
70800
해당 조건으로 존재하는 약관 없음 ⇒ 스토브 담당자에게 문의 부탁드립니다.
70804
GS API 호출에러 ⇒ 스토브 담당자에게 문의 부탁드립니다.
70805
GUID API 호출 에러 ⇒ 스토브 담당자에게 문의 부탁드립니다.
70806
서비스를 찾을 수 없음 ⇒ 스토브 담당자에게 문의 부탁드립니다.
70807
GUID API 에서 정의되지 않은 오류 발생 ⇒ 스토브 담당자에게 문의 부탁드립니다.
40103
토큰 만료 ⇒ 스토브 담당자에게 문의 부탁드립니다.