Purchases
구매 정보를 검색하고 플레이어가 구매한 상품의 구매 상태를 결정합니다.
읽는 시간 1분최근 업데이트: 9일 전
Unity IAP는 애플리케이션이 플레이어가 구매한 것을 인식하고 이를 이행할 수 있도록 스토어에서 구매 정보를 가져옵니다. 이렇게 하면 게임이 앱 외부 또는 다른 기기에서 아이템을 구매한 경우에도 구매 이력을 기반으로 콘텐츠나 자격을 사용자에게 제공할 수 있습니다. 구매는
OrderOrder구매 검색
사용자가 구매한 상품은 스토어에서 가져올 수 있습니다. 그러나 스토어에서 이미 충족된 소모품을 반환하지 않으므로 소모품은 소모된 후 애플리케이션에서 트래킹해야 합니다. 비소비성 제품 및 구독의 경우,FetchPurchasesCheckEntitlement구매 상태 확인
다음 두 가지 방법으로 구매 상태를 결정할 수 있습니다.- 를 사용하여
Order가Order,PendingOrder,ConfirmedOrder또는DeferredOrder인지 확인합니다.FailedOrder - 를 사용하여
CheckEntitlement,EntitledButNotFinished,EntitledUntilConsumed,FullyEntitled또는NotEntitled를 반환하는Unknown를 수신합니다.EntitlementStatus
구매 속성
속성 | 설명 |
|---|---|
| 구매에 대한 고유 ID입니다. |
| 구매한 제품입니다. |
| 구매한 제품의 양입니다. |
| 스토어에서 구매를 확인하기 위한 영수증 데이터입니다. |
구매 상태
State | 설명 |
|---|---|
| 구매가 지급되었지만 아직 이행되지 않았습니다. |
| 구매가 이행되고 확인되었습니다. |
| 오류로 인해 구매가 실패했습니다. |
| 구매가 결제를 대기 중입니다. |
구매 프로세스
OnPurchasePendingOnPurchasePendingOnPurchasePending// Handle restore on initializationprivate async void Start(){ // Setup, e.g. add listeners to your StoreController... m_StoreController.OnPurchasePending += OnPurchasePending; m_StoreController.OnPurchasesFetched += OnPurchasesFetched; await m_StoreController.Connect(); // Fetch previous purchases (includes confirmed orders) m_StoreController.FetchPurchases();}// Handle new purchases and pending transactionsprivate void OnPurchasePending(PendingOrder 순서){ ProcessPurchase(order);}// Handle fetched purchases (includes previously confirmed orders)private void OnPurchasesFetched(정렬 주문){ Foreach (var confirmedOrder in orders.ConfirmedOrders) { if (confirmedOrder.CartOrdered.Items().FirstOrDefault()?.Product.definition.type != ProductType.Consumable) { // Mark non-consumable and subscription products as entitled on fetch, as they only need to be granted once MarkAsEntitled(confirmedOrder.CartOrdered.Items().FirstOrDefault().Product); } }}// Your ProcessPurchase logicprivate void ProcessPurchase(PendingOrder 순서){ Foreach (var product in order.CartOrdered.Items()) { // Grant product GrantProduct(product); } // Confirm the order to finalize the transaction m_StoreController.ConfirmPurchase(order);}
구매 확인 및 신뢰성
Unity IAP에서는 네트워크 중단 또는 애플리케이션 크래시 중에도 구매가 신뢰할 수 있도록 구매를 명시적으로 확인해야 합니다. 구매에 대한 지급이 이루어지지만 이행되지 않으면 Unity IAP는 다음에 애플리케이션이 초기화될 때 구매를 애플리케이션에 제공합니다. 이 프로세스는 구매 흐름이 중단되거나 애플리케이션이 오프라인 상태일 때 구매가 완료될 때 구매가 손실되는 것을 방지합니다. 구매가 성공적으로 완료되면 해당PendingOrderConfirmPurchase클라우드에 대한 지속적인 구매 확인
소모품 구매를 클라우드에 저장하는 경우 구매가 성공적으로 지속되면ConfirmPurchasePending