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

IAP 초기화

생성일
2024/01/15 23:26
태그
상위 항목
하위 항목

1. 빌링 초기화 (Shopkey 사용)

게임에서 PCSDK 를 사용해서 빌링서비스를 제공하기로 결정하였다면, 스토브에서 발급된 상점키 ShopKey 인자값으로 StovePC.IAPInitialize 함수로 빌링 초기화를 시도합니다.
빌링초기화 시도시 스토브 플랫폼에 등록된 상품리스트를 자동으로 조회한 후 스토브 PCSDK 내부 캐시에 저장을 합니다.
StovePC.IAPInitialize 함수를 호출하고 실패하였다면 StovePCResult와 OnError 콜백으로 에러내용을 전달합니다.
// 입력 파라미터 // string shopKey : 스토브에서 발급받은 shopKey StovePCResult result = StovePC.IAPInitialize(YOUR_SHOP_KEY); if(result == StovePCResult.NoError) { // 성공 처리 }
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
토큰 만료 ⇒ 스토브 담당자에게 문의 부탁드립니다.