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 Awake() { 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) { // button, per Apple's In-App Purchase Programming Guide. var apple: IAppleExtensions = m_ExtensionProvider.GetExtension.<IAppleExtensions>(); apple.RestoreTransactions(function(result) { // Restore purchases initiated. See ProcessPurchase for any restored transactions. } ); } } }
using UnityEngine; using UnityEngine.Purchasing;
public class MyStoreClass : MonoBehaviour, IStoreListener { IExtensionProvider m_ExtensionProvider; void Awake() { 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) { // NOTICE: No need here for Application.platform tests. Move platform tests to UI. // Extensions are designed in a way to work regardless of which platform they are // run on. For the UI, only when on Apple platforms display a "Restore Purchases" // button, per Apple's In-App Purchase Programming Guide. IAppleExtensions apple = m_ExtensionProvider.GetExtension<IAppleExtensions>(); apple.RestoreTransactions((result) => { // Restore purchases initiated. See ProcessPurchase for any restored transactions. }); } } }