영수증 ProcessPurchase() 질문

  • 프로젝트명 : 핵 앤 슬래시 키우기

영수증 검증 기능 구현 중인데요.

여기에 유니티에서 지원하는 IAP 서비스 의 학습 콘텐츠를 더이상 사용할수 없다고 나와있어요.ㅠ

현재는 IAP 카탈로그 등 구글 쪽 준비는 해두고 IAP Button만 붙여둔 상태라 ProcessPurchase() 를 어떻게 써야할지
모르겠습니다. 도움 부탁드려봅니다. ㅠㅠ

안녕하세요 개발자님,
현재 Unity IAP의 학습 콘텐츠는 더 이상 제공되지 않고 공식 문서를 대체 안내중인 것으로 확인됩니다. 관련하여서는 개발자 문서 내 수정이 이루어질 수 있도록 하겠습니다.
(뒤끝에서는 Unity IAP 4.x 버전을 기준으로 제공중이며 5.x 이상 버전은 현재 지원되지 않는 점 참고 부탁드립니다.)

Unity IAP에서 ProcessPurchase()를 통해 구매 성공 후 뒤끝 서버에 영수증 검증을 요청하는 기본 흐름은 다음과 같습니다.
아래 안내드리는 예시 참고 부탁드리며, 상세한 정보는 공식 문서 페이지를 꼭 확인하여 주시기 바랍니다.

  1. Unity IAP 초기화 및 IDetailedStoreListener 구현 확인

    • IDetailedStoreListener를 상속한 매니저 클래스를 만들고 아래 함수를 구현합니다:
      • OnInitialized
      • OnInitializeFailed
      • ProcessPurchase
      • OnPurchaseFailed
    • IAP Button에는 해당 매니저의 StoreController를 연결해 구매 요청을 진행합니다.
  2. ProcessPurchase 구현 예시

    public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)
    {
        // 1) Google 영수증 문자열 추출
        string rawReceipt = e.purchasedProduct.receipt;
    
        // 2) 뒤끝 서버로 영수증 검증 요청
        var validation = Backend.Receipt.IsValidateGooglePurchase(rawReceipt, "receiptDescription");
    
        if (validation.IsSuccess())
        {
            // 검증 성공 시 상품 ID 확인 후 보상 처리
            if (e.purchasedProduct.definition.id == "내_상품_ID")
            {
                onPurchaseComplete?.Invoke(e.purchasedProduct); // 보상 로직
            }
            // 주의: 동일 영수증 재사용 시 실패 처리됨 (중복 사용 방지 필요)
        }
        else
        {
            Debug.LogError($"Receipt Validation Failed: {validation.GetStatusCode()} / {validation.GetMessage()}");
            // 실패 처리 및 사용자 안내
        }
    
        // 검증 후 자동 소비 처리 (또는 Pending 처리 가능)
        return PurchaseProcessingResult.Complete;
    }
    
  3. 실제 테스트 환경 관련 팁

    • 에디터 및 디버그 빌드에서는 영수증 검증이 동작하지 않습니다.
    • Google Play Console에 인앱 상품을 게시하고, Test Track(내부 테스트 채널)으로 업로드 후 실제 기기에서 구매해야 검증이 수행됩니다.
    • 테스트 시 “Store”: "fake"와 같이 페이크 영수증은 400 Parse Error로 실패하므로, 실제 결제 영수증을 사용해야 합니다.

또한 IAP를 다운받으시면 유니티 패키지 매니저에 관한 샘플도 확인할 수 있으니 함께 참고하여 주시면 감사하겠습니다.

image

좋아요 1