Version: 2017.1

IStore

interface in UnityEngine.Purchasing.Extension

매뉴얼로 전환

설명

The public interface of an underlying store system (e.g. Google Play or Apple App Store) typically exposed to Unity IAP extending its in-app purchasing platform support.

Unity IAP is extensible, supporting registration of store systems through IPurchasingModule implementations shared with Unity IAP via a ConfigurationBuilder during initialization.

A sample store class:

using System;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using UnityEngine.Purchasing;
using UnityEngine.Purchasing.Extension;

// Purchases always succeed at the sample store internal class SampleStore : IStore { public const string Name = "samplestore"; private IStoreCallback m_Biller; private List<string> m_PurchasedProducts = new List<string>();

public void Initialize(IStoreCallback biller) { m_Biller = biller; }

public void RetrieveProducts(ReadOnlyCollection<ProductDefinition> productDefinitions) { var products = new List<ProductDescription>(); foreach (var product in productDefinitions) { var metadata = new ProductMetadata("$123.45", "Fake title for " + product.id, "Fake description", "USD", 123.45m); products.Add(new ProductDescription(product.storeSpecificId, metadata)); } m_Biller.OnProductsRetrieved(products); }

public void Purchase(ProductDefinition product, string developerPayload) { // Keep track of non consumables. if (product.type != ProductType.Consumable) { m_PurchasedProducts.Add(product.storeSpecificId); } m_Biller.OnPurchaseSucceeded(product.storeSpecificId, "{ \"this\" : \"is a fake receipt\" }", Guid.NewGuid().ToString()); }

public void FinishTransaction(ProductDefinition product, string transactionId) { } }

Public 함수

FinishTransactionCalled by Unity IAP when a transaction has been recorded.
InitializeInitialize the store.
PurchaseHandle a purchase request from a user.
RetrieveProductsFetch the latest product metadata, including purchase receipts, asynchronously with results returned via IStoreCallback.