Ваш магазин может предлагать дополнительные функции, которые не подходят для процесса покупки на различных платформах, например возможность обновлять чеки приложений в магазинах Apple.
Вы должны создать интерфейс, определяющий расширенную функциональность, реализующий интерфейс IStoreExtension
:
/// <summary>
/// Functionality specific to my store.
/// </summary>
public interface IMyExtensions : IStoreExtension
{
// Hypothetical method for a store that provides User IDs.
String GetUserStoreId();
}
Приложения запрашивают расширенные функции через IExtensionProvider
. Когда они делают это Unity IAPСокращение Unity In App Purchase
См. Словарь сначала пытается привести реализацию активного хранилища к запрошенному типу.
Если это приведение не удается, Unity IAP предоставит любой экземпляр, зарегистрированный с помощью вызова, предоставленного вашим модулем магазина через RegisterExtension
, или null, если экземпляр не был предоставлен.
Модули должны предоставлять экземпляры для интерфейсов расширений, которые они определяют, даже при работе на неподдерживаемых платформах, чтобы не заставлять разработчиков приложений использовать компиляцию, зависящую от платформы.