Version: 2017.3
Definiendo productos
Mirando Metadata del Producto

Inicialización

Usted debe proporciona una implementación de la interfaz IStoreListenerque el Unity IAP utiliza para informarle a su aplicación de eventos relacionados a compras.

Llame el método UnityPurchasing.Initialize para empezar el proceso de inicialización, proporcionando la implementación de su listener y configuración.

Tenga en cuenta que la inicialización no va a fallar si la red no está disponible; el Unity IAP va a continuar a inicializarse en el fondo. La inicialización solamente va a fallar si el Unity IAP se encuentra con un problema sin recuperarse tal como una mis-configuración o el IAP estando deshabitado en los ajustes del dispositivo.

Consecuentemente el Unity IAP puede tomar un periodo de tiempo arbitrario para inicializarse; indefinidamente si el usuario está en el modo avión. Usted debería diseñar su tienda de acuerdo al prevenir que los usuarios intenten de hacer compras si la inicialización no se ha completado exitosamente.

using UnityEngine;
using UnityEngine.Purchasing;

public class MyIAPManager : IStoreListener {

    private IStoreController controller;
    private IExtensionProvider extensions;

    public MyIAPManager () {
        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
        builder.AddProduct("100_gold_coins", ProductType.Consumable, new IDs
        {
            {"100_gold_coins_google", GooglePlay.Name},
            {"100_gold_coins_mac", MacAppStore.Name}
        });

        UnityPurchasing.Initialize (this, builder);
    }

    /// <summary>
    /// Called when Unity IAP is ready to make purchases.
    /// </summary>
    public void OnInitialized (IStoreController controller, IExtensionProvider extensions)
    {
        this.controller = controller;
        this.extensions = extensions;
    }

    /// <summary>
    /// Called when Unity IAP encounters an unrecoverable initialization error.
    ///
    /// Note that this will not be called if Internet is unavailable; Unity IAP
    /// will attempt initialization until it becomes available.
    /// </summary>
    public void OnInitializeFailed (InitializationFailureReason error)
    {
    }

    /// <summary>
    /// Called when a purchase completes.
    ///
    /// May be called at any time after OnInitialized().
    /// </summary>
    public PurchaseProcessingResult ProcessPurchase (PurchaseEventArgs e)
    {
        return PurchaseProcessingResult.Complete;
    }

    /// <summary>
    /// Called when a purchase fails.
    /// </summary>
    public void OnPurchaseFailed (Product i, PurchaseFailureReason p)
    {
    }
}
Definiendo productos
Mirando Metadata del Producto