docs.unity3d.com
    Show / Hide Table of Contents

    Store Extensions

    Stores may offer unique functionality that does not fit into the normal cross-platform purchase flow. This extended functionality is accessed via the IExtensionProvider which is provided to your application when Unity IAP initializes successfully.

    It is not necessary to use platform-dependent compilation when using extensions; each extension comes with a fake no-op implementation which is used when running on a platform that does not offer the extended functionality.

    For example, the following snippet accesses the RefreshReceipt mechanism Apple offers to fetch a refreshed App Receipt from Apple's servers. It can be compiled on any Unity IAP platform, and if you were to run it on a non Apple platform such as Android it would have no effect; the supplied lambda would never be invoked.

    /// <summary>
    /// Called when Unity IAP is ready to make purchases.
    /// </summary>
    public void OnInitialized (IStoreController controller, IExtensionProvider extensions)
    {
        extensions.GetExtension<IAppleExtensions> ().RefreshAppReceipt (result => {
            if (result) {
                // Refresh finished successfully.
            } else {
                // Refresh failed.
            }
        });
    }
    
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023