기술 자료

​
​

Development

User Acquisition

Monetization

산업 분야

In-App Purchasing

IAP 클라이언트 API

IAP SDK API

웹숍 관리자 API

웹숍 클라이언트 API

In-App Purchasing

LiveOps
​
​
시작하기
  • 개요
  • IAP 소개
  • IAP v5의 새로운 사항
  • IAP v4에서 v5로 업그레이드
소비자 (D2C)에 대한 직접 결제
  • 소비자 (D2C) 결제 제공업체에게 직접 제공
웹숍
  • 개요
  • 시작하기
  • 빌드 및 퍼블리시
  • 구성
  • 게임에 연결
  • 관리자
  • 웹숍 문제 해결
플랫폼 네이티브 스토어
  • 플랫폼 네이티브 스토어에 대한 IAP 설정
  • 코드리스 IAP
    • 코드리스 IAP 설정
    • 코드리스 IAP 버튼 설정
카탈로그 및 스토어 관리
  • 제품 카탈로그 생성
    • 카탈로그 및 카탈로그 리스트
    • 카탈로그 스키마
    • 에디터에서 카탈로그 생성
    • IAP 카탈로그 창 참조
    • 프로그래밍 방식으로 카탈로그 만들기
    • 원격 카탈로그 생성
    • 대시보드에서 카탈로그 관리
    • 코드리스 IAP
      • Codeless IAP button configuration
    • 스토어
    • Purchases
    • 영수증 확인
    • 구매 복원
  • 지원되는 스토어
  • 레퍼런스
Purchases
  • 구매 관리 및 이행
IAP 성능 모니터링
  • 개요
  • IAP 수익 성과
  • D2C 성능
개인정보
  • 개인정보 보호 및 동의
  1. Unity 인앱 구매

코드리스 IAP 버튼 설정

코드리스 IAP 버튼과 IAP 리스너를 설정하고 사용하여 복잡한 코드를 작성하지 않고도 인앱 구매를 활성화하고 구매를 복원할 수 있습니다.
읽는 시간 3분
최근 업데이트: 2달 전

Codeless IAP 버튼을 사용하면 스크립팅 최소화하여 인앱 구매를 쉽게 설정하고 버튼을 복원할 수 있습니다. IAP 버튼을 사용하여 UI 버튼에 구매 및 복원 함수를 직접 추가합니다. 이 접근 방식은 사용자가 앱에서 상품을 구매하거나 복원할 수 있는 간단한 방법을 제공합니다.

OnProductFetched를 사용하여 제품 세부 정보를 업데이트합니다.

Unity IAP는 앱 스토어에서 제품 정보를 가져올 때
OnProductFetched
이벤트를 트리거합니다. 제목, 설명, 가격 등 UI의 제품과 관련된 모든 텍스트를 이 이벤트로 업데이트해야 합니다.
OnProductFetched
스크립트의 예시:
팁
다음과 유사한 스크립트를
IAPButton
에 추가하여 다른 뷰를 이 이벤트에 연결합니다.
public class IAPButtonView : MonoBehaviour{ [SerializeField] TMP_Text title; [SerializeField] TMP_Text price; public void OnProductFetched(Product product) { if (title != null) { title.text = product.metadata.localizedTitle; } if (price != null) { price.text = product.metadata.localizedPriceString; } }}

IAP 리스너

코드리스 IAP는 일반적으로 성공적이고 실패한 구매 이벤트를 씬의 활성 IAP 버튼 컴포넌트로 전송합니다. 그러나 IAP 버튼을 사용하는 것이 실용적이지 않은 경우가 있습니다. 예를 들어 구매 이행이 중단되어 완료되지 않으면 Unity IAP는 다음 번에 구매를 초기화할 때(대개 앱 시작 직후, IAP 버튼이 아직 초기화되지 않은 경우) 구매를 다시 처리하려고 시도합니다. 이러한 경우에는 IAP Listener 컴포넌트를 사용할 수 있습니다. IAP 리스너는 IAP 버튼으로 처리할 수 없는 구매 이벤트를 수신하여 모든 구매가 올바르게 처리되도록 합니다. 씬에 IAP 리스너를 추가하여 이러한 이벤트를 자동으로 처리합니다.
참고
중복 응답을 방지하려면 IAP 리스너가 처리하는 이벤트가 동일한 제품의 IAP 버튼에서도 구독되지 않도록 해야 합니다.
IAP 리스너를 추가하려면 다음 단계를 따르십시오.
  1. Unity 에디터에서 Services > In-App Purchasing > Create IAP Listener를 선택합니다.
  2. 게임 오브젝트 컴포넌트로 구매 이행 스크립트를 작성하는 단계를 따르십시오. 자세한 내용은 구매 이행을 참고하십시오.
  3. 계층 구조 목록에서 IAP Listener를 선택하고 인스펙터에서 해당 IAP Listener 스크립트 컴포넌트를 찾습니다. 그런 다음 **+**를 선택하여 구매 가져온 시 및 **구매 대기 시(PendingOrder)**에 대한 함수를 추가합니다.
    • On Order Pending은 모든 새 거래를 처리하며 개별
      PendingOrder
      에 대해 호출됩니다.
    • On Purchases Fetched는 모든 기존 거래를 처리하며, 모든 활성 대기 중, 확인 및 디퍼드 거래가 포함된
      Orders
      객체와 함께 호출됩니다.
  4. 구매 이행 스크립트가 포함된 게임 오브젝트를 컴포넌트의 인스펙터에서 이벤트 필드로 드래그한 다음 드롭다운 메뉴에서 함수를 선택합니다.

Restore 버튼

Apple 앱 스토어를 비롯한 일부 앱 스토어에는 앱에 복원 버튼이 있어야 합니다. 코드리스 IAP를 사용하면 앱에서 복원 버튼을 쉽게 구현할 수 있습니다.
복원 버튼을 추가하려면 다음 단계를 따르십시오.
  1. 씬에 IAP 버튼을 추가합니다(서비스 > 인앱 구매 > IAP 버튼 생성).
  2. IAP Button을 선택한 상태에서 인스펙터에서 해당 IAP Button 컴포넌트를 찾습니다.
    1. 버튼 타입 드롭다운 메뉴에서 복원을 선택합니다. 인스펙터 창 Restore 버튼과 관련된 필드만 표시하도록 업데이트됩니다.
  3. 선택 사항: 더하기(+) 버튼을 선택하여
    On Transactions Restored (Boolean, String)
    에 스크립트를 추가합니다.
    1. 복원 거래 스크립트가 포함된 게임 오브젝트를 컴포넌트의 인스펙터에 있는 이벤트 필드로 드래그한 다음 드롭다운에서 함수를 선택합니다.
public void OnTransactionsRestored(bool success, string? error){ Debug.Log($"TransactionsRestored: {success} {error}");}
사용자가 런타임 시 이 버튼을 선택하면 현재 스토어의 구매 복구 API 호출합니다. 이는 Apple 앱 스토어 Apple의 빌트인 복원 또는 동기화 플로를 트리거합니다. Google Play에서 복원은 IAP 초기화의 일부입니다. 런타임 중에 추가 복원 호출은 거의 결과를 생성하지 않습니다.
Unity IAP는 항상 Restore IAP 버튼의
OnTransactionsRestored
메서드를 결과와 복원에 실패한 경우 관련 오류 메시지와 함께 호출합니다.
거래가 복구되면 Unity IAP는 제품에 연결된 IAP 버튼의
OnPurchaseFetched
콜백을 호출하거나, IAP Listener 컴포넌트의
OnPurchasesFetched
콜백을 호출합니다.
public void OnOrderPending(PendingOrder order){ Foreach (var cartItem in order.CartOrdered.Items()) { var product = cartItem.Product; // grant purchase... }}public void OnPurchasesFetched(Orders existingOrders){ Foreach(기존 Orders.ConfirmedOrders의 모든 순서) { Foreach (var cartItem in order.CartOrdered.Items()) { var product = cartItem.Product; // grant access... } }}

Copyright © 2026 Unity Technologies
법률 정보개인정보 처리방침쿠키Documentation Terms of Use개인 정보 판매 또는 공유 금지개인정보 보호 선택(쿠키 설정)

'Unity', Unity 로고 및 기타 Unity 상표는 미국 및 기타 지역 내 Unity Technologies 또는 그 계열사의 상표 또는 등록상표입니다(자세한 내용은 여기에서 확인하세요). 기타 명칭 또는 브랜드는 해당 소유자의 상표입니다.

일부 페이지는 편의를 위해 기계 번역되었으며 부정확한 내용이 있을 수 있습니다. 정보가 상충되는 경우, 영어 버전을 우선으로 참조하세요.

  • 보고 있는 페이지
    • OnProductFetched를 사용하여 제품 세부 정보를 업데이트합니다.

    • IAP 리스너

    • Restore 버튼


이 페이지의 문제 보고