미 지급된 아이템의 영수증 정보 요청

상품 구매 과정에서 여러가지 상황으로 인하여 아이템 지급을 실패하거나 취소되는 경우가 발생할 수 있습니다. 이런 상황을 대비하기 위해서는 미 지급된 아이템의 영수증 정보를 요청해야 합니다.

C2SModuleInappV4 클래스의 Restore() 메서드를 호출하여 미 지급된 아이템의 정보를 요청하세요.

  • Restore() 메서드를 호출한 결과 값이 SUCCESS이고 ReceiptList가 전달된 경우 복구할 아이템이 존재하는 상황입니다. 미 지급된 아이템을 지급하고 완료로 처리하세요.
  • Restore() 메서드를 호출한 결과 값이 SUCCESS가 아닌 경우 게임에서 처리하지 않아도 됩니다.
  • Restore() 메서드를 호출 후 에러가 발생할 경우 유저가 반드시 알아야 하는 에러를 제외하고는 별도 알림 없이 유저가 게임을 계속 플레이할 수 있도록 구현하세요.

C2SModuleInappV4_Restore

  • Request
    Argument Type Type Description Platform
    type string 요청 아이템 타입
    consumable: 소모성
    subscription: 구독형
    all
  • Response
    Argument Type Type Description Platform
    type string 요청 아이템 타입
    consumable: 소모성
    subscription: 구독형
    all
    receiptList array 영수증 정보 (Dictionary)
    에러 발생 상황에는 비어 있음 자세히
    all
  • receiptList 배열 타입
    Argument Type Type Description Platform
    type string 마켓 타입
    not_selected
    apple_appstore
    google_playstore
    hive_lebi
    onestore
    amazon_appstore
    samsung_galaxystore
    huawei_appgallery
    all
    additionalInfo String 구매 시 전달한 추가 데이터 (JSON String) android(1.21.1.1-)
    bypassInfo String Hive 영수증 검증 시 필요한 검증 데이터 (구매 영수증 포함) all
    hiveiapReceipt String 구매 영수증 원본 all
    product Dictionary 구매 상품 정보 all
  • product 딕셔너리 타입
    Argument Type Type Description Platform
    marketPid string 마켓에 등록된 상품의 고유 ID all
    currency string 통화코드
    예. KRW, USD
    all
    price double 상품 가격 all
    displayPrice string 상품의 가격 문자열
    예. $100.00 자세히
    all
    title string 상품의 타이틀 all
    description string 상품 설명 all
    productType string 상품 타입
    consumable: 소모성
    subscription: 구독형
    all
    originalJson string 마켓에서 전달된 응답 데이터 Android
    displayOriginalPrice string 할인 전 가격 문자열 All
    originalPrice long 할인 전 가격 All
    iconUrl string 상품 아이콘 (512*512) Android
    coinsReward int Amazon 코인 획득 금액
    Amazon에서만 사용
    Android

다음은 미 지급된 아이템의 영수증 정보를 요청하는 예제 코드입니다.

Unity®

API Reference: C2SModule.InappV4.Restore

Cocos2d-x

API Reference: C2SModuleInappV4_Restore

iOS

API Reference: C2SModuleInappV4 Restore

구매 복구 에러코드
에러 에러코드 설명
NeedInitialize -305 초기화 진행 필요
NetworkError -301 네트워크 에러
NotSupported -6 구매 불가 상태 (기기 앱 내 구입 차단 등)
지원하지 않는 마켓 설정
NeedLogin -200 구매를 진행할 수 없는 사용자 세션
InvalidArg -2 파라미터 오류
RestoreNotOwnedItem -306 복구할 아이템 없음
FailCanMakePayments -5000 InApp 구입 차단 설정 상태 (iOS 전용)
FailOperation -3 기타 오류
Hive IAP 서버 오류

구매 영수증 검증 요청

구매 성공 후, 게임 서버에서 아이템을 지급하기 전 Hive IAP의 영수증 검증 API를 이용하여 구매 영수증의 유효성 검증을 구현합니다.
영수증 검증 API 응답값의 hiveiap_transaction_id는 영수증별로 유니크하게 발급되는 ID이기 때문에 이 값을 게임 서버에 저장 후 영수증의 중복 여부를 체크할 수 있습니다.
Hive IAP 영수증 검증 API를 사용하여 검증하고 모든 Request Parameter의 모든값을 전송하면 매출정보 및 매출에 대한 게임정보의 애널리틱스 전송을 Hive IAP 서버에서 대행합니다. 또한 Hive One 통합조회의 결제 조회를 위한 API를 게임에서 따로 개발할 필요가 없습니다.
자세한 내용은 Hive IAP 영수증 검증 API에서 확인하세요.

구매/복구한 아이템의 지급 완료

상품 구매 후, 아이템 지급을 완료했다면 C2SModuleInappV4 클래스의 TransactionFinish() 메서드를 반드시 호출하여 구매를 완료하세요.

C2SModuleInappV4_TransactionFinish

  • Request
    Argument Type Type Description Platform
    pid string 요청 아이템의 Product ID all
    isPurchaseSuccess bool isPurchaseSuccess는 마케팅 트래킹 로그(Singular, Adjust) 전송 여부 표시
    과금을 실제로 성공한 Finish일 경우에만 true로 설정
    기본값은 false
  • Response
    Argument Type Type Description Platform
    pid string Finish 동작을 성공한 Product ID
    실패 상황에는 비어 있음
    all

다음은 하나의 지급 요청을 완료하는 예제 코드입니다.

Unity®

API Reference: C2SModule.InappV4.TransactionFinish

Cocos2d-x

API Reference: C2SModuleInappV4_TransactionFinish

iOS

API Reference: C2SModuleInappV4 TransactionFinish

C2SModuleInappV4_GetAccountUuid

UUIID v3 형태의 vid 해시값입니다. Google Play, AppStore의 경우 구매 요청 시 마켓에 전달되며 이 값을 사용하여 단기간에 동일한 계정에서 여러 기기를 사용해 구매하는 것과 같은 활동을 감지합니다. 영수증에서 확인할 수 있습니다. 항상 소문자(lowercased)로 전달합니다.

  • Request
    Argument Type Type Description Platform
    없음
  • Response
    Argument Type Type Description Platform
    accountUuid String UUIID v3 형태의 vid 해시값 all (1.20.3.2+)

다음은 accountUuid를 얻는 예제 코드입니다.

Unity®

API Reference: C2SModule.InappV4.GetAccountUuid

Cocos2d-x

API Reference: C2SModuleInappV4_TransactionFinish

iOS

API Reference: C2SModuleInappV4 TransactionFinish