코드리스 IAP 버튼 설정
코드리스 IAP 버튼과 IAP 리스너를 설정하고 사용하여 복잡한 코드를 작성하지 않고도 인앱 구매를 활성화하고 구매를 복원할 수 있습니다.
읽는 시간 1분최근 업데이트: 10일 전
Codeless IAP 버튼을 사용하면 스크립팅 최소화하여 인앱 구매를 쉽게 설정하고 버튼을 복원할 수 있습니다. IAP 버튼을 사용하여 UI 버튼에 구매 및 복원 함수를 직접 추가합니다. 이 접근 방식은 사용자가 앱에서 상품을 구매하거나 복원할 수 있는 간단한 방법을 제공합니다.
OnProductFetched를 사용하여 제품 세부 정보를 업데이트합니다.
Unity IAP는 앱 스토어에서 제품 정보를 가져올 때OnProductFetchedOnProductFetchedpublic 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 리스너를 추가하려면 다음 단계를 따르십시오.
- Unity 에디터에서 Services > In-App Purchasing > Create IAP Listener를 선택합니다.
- 게임 오브젝트 컴포넌트로 구매 이행 스크립트를 작성하는 단계를 따르십시오. 자세한 내용은 구매 이행을 참고하십시오.
- 계층 구조 목록에서 IAP Listener를 선택하고 인스펙터에서 해당 IAP Listener 스크립트 컴포넌트를 찾습니다. 그런 다음 **+**를 선택하여 구매 가져온 시 및 **구매 대기 시(PendingOrder)**에 대한 함수를 추가합니다.
- On Order Pending은 모든 새 거래를 처리하며 개별 에 대해 호출됩니다.
PendingOrder - On Purchases Fetched는 모든 기존 거래를 처리하며, 모든 활성 대기 중, 확인 및 디퍼드 거래가 포함된 객체와 함께 호출됩니다.
Orders
- On Order Pending은 모든 새 거래를 처리하며 개별
- 구매 이행 스크립트가 포함된 게임 오브젝트를 컴포넌트의 인스펙터에서 이벤트 필드로 드래그한 다음 드롭다운 메뉴에서 함수를 선택합니다.
Restore 버튼
Apple 앱 스토어를 비롯한 일부 앱 스토어에는 앱에 복원 버튼이 있어야 합니다. 코드리스 IAP를 사용하면 앱에서 복원 버튼을 쉽게 구현할 수 있습니다. 복원 버튼을 추가하려면 다음 단계를 따르십시오.- 씬에 IAP 버튼을 추가합니다(서비스 > 인앱 구매 > IAP 버튼 생성).
- IAP Button을 선택한 상태에서 인스펙터에서 해당 IAP Button 컴포넌트를 찾습니다.
- 버튼 타입 드롭다운 메뉴에서 복원을 선택합니다. 인스펙터 창 Restore 버튼과 관련된 필드만 표시하도록 업데이트됩니다.
- 선택 사항: 더하기(+) 버튼을 선택하여 에 스크립트를 추가합니다.
On Transactions Restored (Boolean, String)- 복원 거래 스크립트가 포함된 게임 오브젝트를 컴포넌트의 인스펙터에 있는 이벤트 필드로 드래그한 다음 드롭다운에서 함수를 선택합니다.
사용자가 런타임 시 이 버튼을 선택하면 현재 스토어의 구매 복구 API 호출합니다. 이는 Apple 앱 스토어 Apple의 빌트인 복원 또는 동기화 플로를 트리거합니다. Google Play에서 복원은 IAP 초기화의 일부입니다. 런타임 중에 추가 복원 호출은 거의 결과를 생성하지 않습니다. Unity IAP는 항상 Restore IAP 버튼의public void OnTransactionsRestored(bool success, string? error){ Debug.Log($"TransactionsRestored: {success} {error}");}
OnTransactionsRestoredOnPurchaseFetchedOnPurchasesFetchedpublic 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... } }}