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(); }
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); }
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; }