docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Store Extensions

    Your store may offer additional functionality that does not fit into the cross platform purchase flow, for example the ability to refresh app receipts on Apple’s stores.

    You should create an interface that defines the extended functionality, itself implementing the IStoreExtension interface:

    /// <summary>
    /// Functionality specific to my store.
    /// </summary>
    public interface IMyExtensions : IStoreExtension
    {
        // Hypothetical method for a store that provides User IDs.
        String GetUserStoreId();
    }
    

    Applications request extended functionality via the IExtensionProvider. When they do so Unity IAP first tries to cast the active store implementation to the requested type.

    If that cast fails, Unity IAP will provide any instance registered via a call your store module has provided via RegisterExtension, or null if no instance has been provided.

    Modules should provide instances for the extension interfaces they define even when running on unsupported platforms, so as to avoid forcing application developers to use platform dependent compilation.

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)