ストアの拡張
自作したストアでは、クロスプラットフォームの購入フローには収まらない追加の機能を提供することができます。例えば、Apple のストアでアプリケーションのレシートを更新する機能などが挙げられます。
拡張機能を定義するインターフェースを作成し、それ自体にIStoreExtension インターフェースを実装する必要があります。
/// <summary>
/// ストア固有の機能。
/// </summary>
public interface IMyExtensions : IStoreExtension
{
// ユーザー ID を提供するストアのための仮説的なメソッド。
String GetUserStoreId();
}
アプリケーションは IExtensionProvider を通じて拡張機能をリクエストします。その際、Unity IAP はまずアクティブなストア実装をリクエストされたタイプにキャストしようとします。
そのキャストが失敗した場合、Unity IAP は、ストアのモジュールが RegisterExtension を介して提供した呼び出しで登録されたインスタンスを提供するか、インスタンスが提供されなかった場合は null を返します。
モジュールは、サポートされていないプラットフォームで実行されている場合でも、定義した拡張機能インターフェースのインスタンスを提供する必要があります。これは、アプリケーション開発者がプラットフォームに依存するコンパイルを使用しなければならなくなるのを避けるためです。