public void OnConsumeFinishedCallBack(string data)
    {
        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);

        int resp = System.Convert.ToInt32(storeData[0]);
        GooglePurchaseTemplate purchase = null;


        if (resp == BillingResponseCodes.BILLING_RESPONSE_RESULT_OK)
        {
            purchase                  = new GooglePurchaseTemplate();
            purchase.SKU              = storeData[2];
            purchase.packageName      = storeData[3];
            purchase.developerPayload = storeData[4];
            purchase.orderId          = storeData[5];
            purchase.SetState(storeData[6]);
            purchase.token        = storeData[7];
            purchase.signature    = storeData[8];
            purchase.originalJson = storeData[9];

            if (_inventory != null)
            {
                _inventory.removePurchase(purchase);
            }
        }

        BillingResult result = new BillingResult(resp, storeData [1], purchase);

        ActionProductConsumed(result);
        dispatch(ON_PRODUCT_CONSUMED, result);
    }
    public void OnPurchasesRecive(string data)
    {
        if (data.Equals(string.Empty))
        {
            Debug.Log("InAppPurchaseManager, no purchases avaiable");
            return;
        }

        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);



        for (int i = 0; i < storeData.Length; i += 9)
        {
            GooglePurchaseTemplate tpl = new GooglePurchaseTemplate();
            tpl.SKU              = storeData[i];
            tpl.packageName      = storeData[i + 1];
            tpl.developerPayload = storeData[i + 2];
            tpl.orderId          = storeData[i + 3];
            tpl.SetState(storeData[i + 4]);
            tpl.token        = storeData[i + 5];
            tpl.signature    = storeData[i + 6];
            tpl.time         = System.Convert.ToInt64(storeData[i + 7]);
            tpl.originalJson = storeData[i + 8];

            _inventory.addPurchase(tpl);
        }

        Debug.Log("InAppPurchaseManager, tottal purchases loaded: " + _inventory.purchases.Count);
    }
    //--------------------------------------
    // EVENTS
    //--------------------------------------



    public void OnPurchaseFinishedCallback(string data)
    {
        Debug.Log(data);
        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);

        int resp = System.Convert.ToInt32(storeData[0]);
        GooglePurchaseTemplate purchase = new GooglePurchaseTemplate();


        if (resp == BillingResponseCodes.BILLING_RESPONSE_RESULT_OK)
        {
            purchase.SKU              = storeData[2];
            purchase.packageName      = storeData[3];
            purchase.developerPayload = storeData[4];
            purchase.orderId          = storeData[5];
            purchase.SetState(storeData[6]);
            purchase.token        = storeData[7];
            purchase.signature    = storeData[8];
            purchase.time         = System.Convert.ToInt64(storeData[9]);
            purchase.originalJson = storeData[10];

            if (_inventory != null)
            {
                _inventory.addPurchase(purchase);
            }
        }
        else
        {
            purchase.SKU = _processedSKU;
        }


        BillingResult result = new BillingResult(resp, storeData [1], purchase);

        ActionProductPurchased(result);
        dispatch(ON_PRODUCT_PURCHASED, result);
    }
    //--------------------------------------
    // EVENTS
    //--------------------------------------



    public void OnPurchaseFinishedCallback(string data)
    {
        Debug.Log(data);
        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);

        int resp = System.Convert.ToInt32(storeData[0]);
        GooglePurchaseTemplate purchase = new GooglePurchaseTemplate();


        if (resp == BillingResponseCodes.BILLING_RESPONSE_RESULT_OK)
        {
            purchase.SKU              = storeData[2];
            purchase.packageName      = storeData[3];
            purchase.developerPayload = storeData[4];
            purchase.orderId          = storeData[5];
            purchase.SetState(storeData[6]);
            purchase.token        = storeData[7];
            purchase.signature    = storeData[8];
            purchase.time         = System.Convert.ToInt64(storeData[9]);
            purchase.originalJson = storeData[10];

            if (_inventory != null)
            {
                _inventory.addPurchase(purchase);
            }
        }
        else
        {
            purchase.SKU = _processedSKU;
        }


        //Soomla Analytics
        if (resp == BillingResponseCodes.BILLING_RESPONSE_RESULT_OK)
        {
            GoogleProductTemplate tpl = Inventory.GetProductDetails(purchase.SKU);
            if (tpl != null)
            {
                AN_SoomlaGrow.PurchaseFinished(tpl.SKU, tpl.PriceAmountMicros, tpl.PriceCurrencyCode);
            }
            else
            {
                AN_SoomlaGrow.PurchaseFinished(purchase.SKU, 0, "USD");
            }
        }
        else
        {
            if (resp == BillingResponseCodes.BILLINGHELPERR_USER_CANCELLED)
            {
                AN_SoomlaGrow.PurchaseCanceled(purchase.SKU);
            }
            else
            {
                AN_SoomlaGrow.PurchaseError();
            }
        }

        BillingResult result = new BillingResult(resp, storeData [1], purchase);


        ActionProductPurchased(result);
    }
	public void OnPurchasesRecive(string data) {
		if(data.Equals(string.Empty)) {
			Debug.Log("InAppPurchaseManager, no purchases avaiable");
			return;
		}
		
		string[] storeData;
		storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);
		
		for(int i = 0; i < storeData.Length; i+=9) {
			GooglePurchaseTemplate tpl =  new GooglePurchaseTemplate();
			tpl.SKU 				= storeData[i];
			tpl.packageName 		= storeData[i + 1];
			tpl.developerPayload 	= storeData[i + 2];
			tpl.orderId 	        = storeData[i + 3];
			tpl.SetState(storeData[i + 4]);
			tpl.token 	        	= storeData[i + 5];
			tpl.signature 	        = storeData[i + 6];
			tpl.time 	        	= System.Convert.ToInt64(storeData[i + 7]); 
			tpl.originalJson 	    = storeData[i + 8];
			
			_inventory.addPurchase (tpl);
		}
		
		Debug.Log("InAppPurchaseManager, total purchases loaded: " + _inventory.Purchases.Count);
		
	}
	public void OnConsumeFinishedCallBack(string data) {
		string[] storeData;
		storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);
		
		int resp = System.Convert.ToInt32 (storeData[0]);
		GooglePurchaseTemplate purchase = null;
		
		
		if(resp == BillingResponseCodes.BILLING_RESPONSE_RESULT_OK) {
			purchase = new GooglePurchaseTemplate ();
			purchase.SKU 				= storeData[2];
			purchase.packageName 		= storeData[3];
			purchase.developerPayload 	= storeData[4];
			purchase.orderId 	        = storeData[5];
			purchase.SetState(storeData[6]);
			purchase.token 	        		= storeData[7];
			purchase.signature 	        	= storeData[8];
			purchase.time					= System.Convert.ToInt64(storeData[9]);
			purchase.originalJson 	        = storeData[10];
			
			if(_inventory != null) {
				_inventory.removePurchase (purchase);
			}
			
		}
		
		BillingResult result = new BillingResult (resp, storeData [1], purchase);
		
		ActionProductConsumed(result);
	}
	//--------------------------------------
	// EVENTS
	//--------------------------------------
	
	
	
	public void OnPurchaseFinishedCallback(string data) {
		Debug.Log(data);
		string[] storeData;
		storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);
		
		int resp = System.Convert.ToInt32 (storeData[0]);
		GooglePurchaseTemplate purchase = new GooglePurchaseTemplate ();
		
		
		if(resp == BillingResponseCodes.BILLING_RESPONSE_RESULT_OK) {
			
			purchase.SKU 						= storeData[2];
			purchase.packageName 				= storeData[3];
			purchase.developerPayload 			= storeData[4];
			purchase.orderId 	       			= storeData[5];
			purchase.SetState(storeData[6]);
			purchase.token 	        			= storeData[7];
			purchase.signature 	        		= storeData[8];
			purchase.time						= System.Convert.ToInt64(storeData[9]);
			purchase.originalJson 				= storeData[10];
			
			if(_inventory != null) {
				_inventory.addPurchase (purchase);
			}
			
		} else {
			purchase.SKU 						= _processedSKU;
		}
		
		
		//Soomla Analytics
		if(resp == BillingResponseCodes.BILLING_RESPONSE_RESULT_OK) {
			GoogleProductTemplate tpl = Inventory.GetProductDetails(purchase.SKU);
			if(tpl != null) {
				AN_SoomlaGrow.PurchaseFinished(tpl.SKU, tpl.PriceAmountMicros, tpl.PriceCurrencyCode);
			} else {
				AN_SoomlaGrow.PurchaseFinished(purchase.SKU, 0, "USD");
			}
		} else {
			
			
			if(resp == BillingResponseCodes.BILLINGHELPERR_USER_CANCELLED) {
				AN_SoomlaGrow.PurchaseCanceled(purchase.SKU);
			} else {
				AN_SoomlaGrow.PurchaseError();
			}
		}
		
		BillingResult result = new BillingResult (resp, storeData [1], purchase);
		
		
		ActionProductPurchased(result);
	}