Represents a product that may be purchased as an In-App Purchase.
Here is an example of a sample Store class working with a Product referencs.
#pragma strict public class MyStoreClass extends MonoBehaviour { static var kProductID100Currency: String = "virtualcurrency_100"; var m_StoreController: IStoreController; function Awake() { var builder: ConfigurationBuilder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct(kProductID100Currency, ProductType.Consumable); UnityPurchasing.Initialize(this, builder); } public function PurchaseCurrency() { if (m_StoreController != null) { // Fetch the currency Product reference from Unity Purchasing var product: Product = m_StoreController.products.WithID(kProductID100Currency); if (product != null && product.availableToPurchase) { m_StoreController.InitiatePurchase(product); } } } public function OnInitialized(controller: IStoreController, extensions: IExtensionProvider) { m_StoreController = controller; } public function OnInitializeFailed(error: InitializationFailureReason) { } public function ProcessPurchase(e: PurchaseEventArgs) { if (String.Equals(e.purchasedProduct.definition.id, kProductID100Currency, StringComparison.Ordinal)) { Debug.Log("Purchased 100 coins"); } return PurchaseProcessingResult.Complete; } public function OnPurchaseFailed(item: Product, r: PurchaseFailureReason) { } }
using System; using UnityEngine; using UnityEngine.Purchasing;
public class MyStoreClass : MonoBehaviour, IStoreListener { static string kProductID100Currency = "virtualcurrency_100"; IStoreController m_StoreController; void Awake() { ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct(kProductID100Currency, ProductType.Consumable); UnityPurchasing.Initialize(this,builder); } public void PurchaseCurrency() { if (m_StoreController != null) { // Fetch the currency Product reference from Unity Purchasing Product product = m_StoreController.products.WithID(kProductID100Currency); if (product != null && product.availableToPurchase) { m_StoreController.InitiatePurchase(product); } } } public void OnInitialized(IStoreController controller, IExtensionProvider extensions) { m_StoreController = controller; } public void OnInitializeFailed(InitializationFailureReason error) {} public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { if (String.Equals(e.purchasedProduct.definition.id, kProductID100Currency, StringComparison.Ordinal)) { Debug.Log("Purchased 100 coins"); } return PurchaseProcessingResult.Complete; } public void OnPurchaseFailed(Product item, PurchaseFailureReason r) {} }
availableToPurchase | Determine if this product is available to purchase according to the store subsystem. |
definition | Fundamental immutable product properties. |
hasReceipt | Owned Non Consumables and Subscriptions should always have receipts. |
metadata | Localized metadata provided by the store system. |
receipt | The purchase receipt for this product, if owned. Otherwise null. |
transactionID | A unique identifier for this product's transaction, if available. Otherwise null. |
Equals | Equality defined for use in collections. |
GetHashCode | GetHashCode defined for use in collections. |