コード例 #1
0
 public static ZarinpalAndroid CreateInstance()
 {
     if (_instance == null)
     {
         if (_instance == null)
         {
             _instance = new GameObject("ZarinpalAndroid").AddComponent <ZarinpalAndroid>();
             DontDestroyOnLoad(_instance.gameObject);
         }
     }
     return(_instance);
 }
コード例 #2
0
    /// <summary>
    /// Initialize Zarinpal . Call this once is start up of your game.
    /// </summary>
    public static void Initialize()
    {
        if (_platform != null)
        {
            if (Initialized)
            {
                var message = "Zarinpal is already initialized.Please make sure you call 'Initialize' once.";
                OnStoreInitializeFailed(message);
                ZarinpalLog.LogWarning(message);
            }
            else
            {
                var message = "Platform has been created but not initialized . There may be an error. Please see logs for more details";
                OnStoreInitializeFailed(message);
                ZarinpalLog.LogError(message);
            }
            return;
        }

#if UNITY_EDITOR
        _platform = new ZarinpalEditor();
#elif UNITY_IOS
        _platform = ZarinpaliOS.CreateInstance();
#elif UNITY_ANDROID
        _platform = ZarinpalAndroid.CreateInstance();
#endif

        //Subscribing events
        _platform.StoreInitialized           += OnStoreInitialized;
        _platform.PurchaseStarted            += OnPurchaseStarted;
        _platform.PurchaseFailedToStart      += OnPurchaseFailedToStart;
        _platform.PurchaseSucceed            += OnPurchaseSucceed;
        _platform.PurchaseFailed             += OnPurchaseFailed;
        _platform.PurchaseCanceled           += OnPurchaseCanceled;
        _platform.PaymentVerificationStarted += OnPaymentVerificationStarted;
        _platform.PaymentVerificationSucceed += OnPaymentVerificationSucceed;
        _platform.PaymentVerificationFailed  += OnPaymentVerificationFailed;


        if (Initialized)
        {
            var message = "Zarinpal is already initialized.Please make sure you call 'Initialize' once.";
            OnStoreInitializeFailed(message);
            ZarinpalLog.LogWarning(message);
            return;
        }

        var setting = Resources.Load <ZarinpalConfig>("ZarinpalSetting");

        if (setting == null)
        {
            var message =
                "Could not find zarinpal config file.Make sure you have setup zarinpal setting in Zarinpal/Setting";
            OnStoreInitializeFailed(message);
            ZarinpalLog.LogWarning(message);
            return;
        }

        if (string.IsNullOrEmpty(setting.MerchantID) || setting.MerchantID == "MY_ZARINPAL_MERCHANT_ID")
        {
            var message = "Invalid MerchantID.Please go to menu : Zarinpal/Setting to set a valid merchant id";
            OnStoreInitializeFailed(message);
            ZarinpalLog.LogWarning(message);
            return;
        }

        var scheme = setting.Scheme;
        var host   = setting.Host;

#if !UNITY_EDITOR && UNITY_ANDROID
        if (string.IsNullOrEmpty(setting.Scheme) || string.IsNullOrEmpty(setting.Host) ||
            setting.Scheme == "MY_SCHEME" || setting.Host == "MY_HOST")
        {
            var message = "Scheme or Host Can not be null or Empty.Please go to menu : Zarinpal/Setting to set a valid Scheme and Host";
            OnStoreInitializeFailed(message);
            ZarinpalLog.LogWarning(message);
            return;
        }
#else
        scheme = string.Empty;
        host   = string.Empty;
#endif

        if (_platform == null)
        {
            var message = "Platform is not supported";
            OnStoreInitializeFailed(message);
            ZarinpalLog.LogError(message);
            return;
        }

        _platform.Initialize(setting.MerchantID, setting.AutoVerifyPurchase, string.Format("{0}://{1}", scheme, host));
    }