Пример #1
0
        public BillingTransactionIOS(IDictionary _transactionJsonDict)
        {
            ProductIdentifier = _transactionJsonDict.GetIfAvailable <string>(kProductID);

            // Transaction date can be NULL/Empty
            string _tDateStr = _transactionJsonDict.GetIfAvailable <string>(kTransactionDate);

            if (!string.IsNullOrEmpty(_tDateStr))
            {
                TransactionDateUTC   = _tDateStr.ToZuluFormatDateTimeUTC();
                TransactionDateLocal = TransactionDateUTC.ToLocalTime();
            }

            // Transaction identifier
            TransactionIdentifier = _transactionJsonDict.GetIfAvailable <string>(kTransactionID);

            // Transaction receipt can be NULL/Empty
            TransactionReceipt = _transactionJsonDict.GetIfAvailable <string>(kTransactionReceipt);

            // Transactions state
            SKPaymentTransactionState _skTransactionState = (SKPaymentTransactionState)int.Parse(_transactionJsonDict[kTransactionState].ToString());

            TransactionState = ConvertToBillingTransactionState(_skTransactionState);

            // Verifications state
            VerificationState = (eBillingTransactionVerificationState)int.Parse(_transactionJsonDict[kVerificationState].ToString());

            // Error can be NULL/Empty
            Error = _transactionJsonDict.GetIfAvailable <string>(kError);

            // Set response which is sent from Native side
            RawPurchaseData = _transactionJsonDict.ToJSON();
        }
Пример #2
0
        public static IDictionary CreateJSONObject(BillingTransaction _transaction)
        {
            SKPaymentTransactionState _skTransactionState = ConvertToSKTransactionState(_transaction.TransactionState);

            IDictionary _transactionJsonDict = new Dictionary <string, object>();

            _transactionJsonDict[kTransactionDate]    = _transaction.TransactionDateUTC.ToStringUsingZuluFormat();
            _transactionJsonDict[kVerificationState]  = (int)_transaction.VerificationState;
            _transactionJsonDict[kTransactionID]      = _transaction.TransactionIdentifier;
            _transactionJsonDict[kTransactionReceipt] = _transaction.TransactionReceipt;
            _transactionJsonDict[kTransactionState]   = (int)_skTransactionState;
            _transactionJsonDict[kProductID]          = _transaction.ProductIdentifier;
            _transactionJsonDict[kError] = _transaction.Error;

            return(_transactionJsonDict);
        }
Пример #3
0
        private static eBillingTransactionState ConvertToBillingTransactionState(SKPaymentTransactionState _skTransactionState)
        {
            switch (_skTransactionState)
            {
            case SKPaymentTransactionState.SKPaymentTransactionStatePurchased:
                return(eBillingTransactionState.PURCHASED);

            case SKPaymentTransactionState.SKPaymentTransactionStateFailed:
                return(eBillingTransactionState.FAILED);

            case SKPaymentTransactionState.SKPaymentTransactionStateRestored:
                return(eBillingTransactionState.RESTORED);
            }

            return(eBillingTransactionState.FAILED);
        }
		private static eBillingTransactionState ConvertToBillingTransactionState (SKPaymentTransactionState _skTransactionState)
		{
			switch (_skTransactionState)
			{
			case SKPaymentTransactionState.SKPaymentTransactionStatePurchased:
				return eBillingTransactionState.PURCHASED;
				
			case SKPaymentTransactionState.SKPaymentTransactionStateFailed:
				return eBillingTransactionState.FAILED;

			case SKPaymentTransactionState.SKPaymentTransactionStateRestored:
				return eBillingTransactionState.RESTORED;
			}

			return eBillingTransactionState.FAILED;
		}