T The Extension type.
Get the store-specific extension of specified type.
Sample class using GetExtension
to restore previously completed purchase transactions:
#pragma strict public class MyStoreClass extends MonoBehaviour { var m_ExtensionProvider: IExtensionProvider; function Start() { var builder: ConfigurationBuilder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct("levelpackfoo", ProductType.NonConsumable); UnityPurchasing.Initialize(this, builder); } public function OnInitialized(controller: IStoreController, extensions: IExtensionProvider) { m_ExtensionProvider = extensions; } public function OnInitializeFailed(error: InitializationFailureReason) { } public function ProcessPurchase(e: PurchaseEventArgs) { return PurchaseProcessingResult.Complete; } public function OnPurchaseFailed(item: Product, r: PurchaseFailureReason) { } public function RestoreTransactions() { if (m_ExtensionProvider != null && (Application.platform == RuntimePlatform.IPhonePlayer || Application.platform == RuntimePlatform.OSXPlayer)) { var apple: IAppleExtensions = m_ExtensionProvider.GetExtension.<IAppleExtensions>(); apple.RestoreTransactions(function(result) { // Restore purchases initiated. See ProcessPurchase for any restored transacitons. } ); } } }
using UnityEngine; using UnityEngine.Purchasing;
public class MyStoreClass : MonoBehaviour, IStoreListener { IExtensionProvider m_ExtensionProvider; void Start() { ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct("levelpackfoo", ProductType.NonConsumable); UnityPurchasing.Initialize(this,builder); } public void OnInitialized(IStoreController controller, IExtensionProvider extensions) { m_ExtensionProvider = extensions; } public void OnInitializeFailed(InitializationFailureReason error) {} public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { return PurchaseProcessingResult.Complete; } public void OnPurchaseFailed(Product item, PurchaseFailureReason r) {} public void RestoreTransactions() { if (m_ExtensionProvider != null && (Application.platform == RuntimePlatform.IPhonePlayer || Application.platform == RuntimePlatform.OSXPlayer)) { IAppleExtensions apple = m_ExtensionProvider.GetExtension<IAppleExtensions>(); apple.RestoreTransactions((result) => { // Restore purchases initiated. See ProcessPurchase for any restored transacitons. }); } } }