public TransactionInfo(Guid transactionKey, DateTime date, double amount, TransactionStatusType transactionStatusType)
 {
     TransactionKey        = transactionKey;
     CreateDate            = date;
     Amount                = amount;
     TransactionStatusType = transactionStatusType;
 }
Beispiel #2
0
        public static string getCreditCardAccount(TransactionStatusType resultType, string why)
        {
            string creditCardAccount = null;

            if (resultType == TransactionStatusType.Captured)
            {
                creditCardAccount = "4111111111111111";
            }
            if (resultType == TransactionStatusType.Failed)
            {
                bool ignoreCase = true;
                if (null != why)
                {
                    if (string.Compare(why, whyFail_Soft, ignoreCase) == 0)
                    {
                        creditCardAccount = "6011555555555553"; // Soft Fail
                    }
                    else if (string.Compare(why, whyFail_Hard, ignoreCase) == 0)
                    {
                        creditCardAccount = "4555555555555550"; // Hard Fail
                    }
                }
                if (null == creditCardAccount)
                {
                    // Luhn Check Fail Validation
                    creditCardAccount = "1111111111111111";
                }
            }
            return(creditCardAccount);
        }
Beispiel #3
0
        public bool SetStatusUnauthorized()
        {
            StatusTransitionValidate(TransactionStatusType.Unauthorized);

            this.TransactionStatusType = TransactionStatusType.Unauthorized;

            return(true);
        }
Beispiel #4
0
        public bool SetStatusInProgress()
        {
            StatusTransitionValidate(TransactionStatusType.InProgress);

            this.TransactionStatusType = TransactionStatusType.InProgress;

            return(true);
        }
 public void Set(Hash TransactionID, TransactionStatusType transactionStatusType)
 {
     if (TransactionProcessingMap.ContainsKey(TransactionID))
     {
         TransactionProcessingMap[TransactionID].StatusType = transactionStatusType;
     }
     else
     {
         TransactionProcessingMap.TryAdd(TransactionID, new TransactionState(transactionStatusType));
     }
 }
        public static int reportResults(Transaction[] results, int page)
        {
            int nRecords = 0;

            if (results != null)
            {
                Dictionary <TransactionStatusType, int> freq = new Dictionary <TransactionStatusType, int>();

                nRecords = results.Length;
                log("Retreived " + nRecords + ", page [" + page + "]:");
                int n = 0;
                for (int i = 0; i < results.Length; i++)
                {
                    Transaction           tx     = results[i];
                    TransactionStatusType status = tx.status;
                    log("[" + page + ":" + n++ + "]: merchantTransactionId " + wrapValue(tx.merchantTransactionId)
                        + " created selectTransactionId " + wrapValue(tx.selectTransactionId)
                        + " with status " + wrapValue(tx.status.ToString())
                        + " , authCode " + wrapValue(tx.authCode)
                        + " on " + tx.timestamp
                        + " for " + tx.amount + " " + tx.currency
                        );
                    NameValuePair[] nameValues = tx.nameValues;
                    for (int j = 0; null != nameValues && j < nameValues.Length; j++)
                    {
                        log("\tnameValues[" + j + "]: " +
                            nameValues[j].name + " = " + nameValues[j].value);
                    }
                    int count = freq.ContainsKey(status) ? freq[status] : 0;
                    freq[status] = count + 1;
                }

                // Use var keyword to enumerate dictionary.
                foreach (var m in freq)
                {
                    TransactionStatusType type = m.Key;
                    int cnt = m.Value;
                    log(wrapValue(type + ":  " + cnt));
                }
            }
            else
            {
                log("Nothing to fetch - the Transactions object is null.");
            }
            return(nRecords);
        }
Beispiel #7
0
        private bool StatusTransitionValidate(TransactionStatusType desiredTransactionStatusType)
        {
            if (this.TransactionStatusType == desiredTransactionStatusType)
            {
                throw new ConstraintException("No transaction status transition");
            }

            if ((int)this.TransactionStatusType < (int)desiredTransactionStatusType)
            {
                throw new ConstraintException("Invalid transaction status transition");
            }

            if ((int)this.TransactionStatusType <= 1)
            {
                throw new ConstraintException("Invalid transaction status transition from end state process");
            }

            return(true);
        }
 public TransactionState(DateTime FetchTimeUTC, TransactionProcessingResult ProcessingResult, TransactionStatusType StatusType)
 {
     this.ProcessingResult = ProcessingResult;
     this.StatusType = StatusType;
     this.FetchTimeUTC = FetchTimeUTC;
 }
 public TransactionState(TransactionProcessingResult ProcessingResult, TransactionStatusType StatusType)
     : this()
 {
     this.ProcessingResult = ProcessingResult;
     this.StatusType = StatusType;
 }
 public TransactionState(TransactionStatusType StatusType)
     : this()
 {
     this.StatusType = StatusType;
 }
 public static string getCreditCardAccount(TransactionStatusType resultType, string why)
 {
     string creditCardAccount = null;
     if (resultType == TransactionStatusType.Captured)
     {
         creditCardAccount = "4111111111111111";
     }
     if (resultType == TransactionStatusType.Failed)
     {
         bool ignoreCase = true;
         if (null != why)
         {
             if (string.Compare(why, whyFail_Soft, ignoreCase) == 0)
                 creditCardAccount = "6011555555555553";	// Soft Fail
             else if (string.Compare(why, whyFail_Hard, ignoreCase) == 0)
                 creditCardAccount = "4555555555555550";	// Hard Fail
         }
         if (null == creditCardAccount)
         {
             // Luhn Check Fail Validation
             creditCardAccount = "1111111111111111";
         }
     }
     return creditCardAccount;
 }
Beispiel #12
0
        public static Transaction getTransaction(string transactionId)
        {
            Transaction trans = new Transaction();

            trans.merchantTransactionId = transactionId;
            trans.timestamp             = DateTime.Now;
            trans.amount   = new Decimal(10.99);
            trans.currency = "USD";

            TransactionStatusType status = TransactionStatusType.Failed;

            trans.status = status;

            string divisionNumber = "5498";

            trans.divisionNumber = divisionNumber;

            NameValuePair nvp = new NameValuePair();

            nvp.name            = "litle:reportGroup";
            nvp.value           = "Test";
            trans.nameValues    = new NameValuePair[1];
            trans.nameValues[0] = nvp;

            string subscriptionId = transactionId;

            trans.subscriptionId = subscriptionId;

            string customerId = transactionId;

            trans.customerId = customerId;

            string paymentMethodId = transactionId;

            trans.paymentMethodId = paymentMethodId;

            TransactionStatusType resultType;
            string why;

            // split requested results into Captured & Failed: Hard & Soft Fails
            char c     = transactionId[transactionId.Length - 1];
            int  index = c - 0x30;

            switch (index % 2)
            {
            case 0:
                // To use a Card that will be Captured:
                resultType = TransactionStatusType.Captured;
                why        = null;
                break;

            default:
                // To use a Card that will be Failed:
                resultType = TransactionStatusType.Failed;
                switch (index % 3)
                {
                case 0:
                    // Soft Fail:
                    why = whyFail_Soft;
                    break;

                default:
                    // Hard Fail:
                    why = whyFail_Hard;
                    break;
                }
                break;
            }
            string creditCardAccount = getCreditCardAccount(resultType, why);

            trans.creditCardAccount = creditCardAccount;

            string creditCardExpirationDate = "202208";

            trans.creditCardExpirationDate = creditCardExpirationDate;

            string authCode = "302";

            trans.authCode = authCode;


            // Additional data members:
            string affiliateId = "Affiliate" + divisionNumber;

            trans.affiliateId = affiliateId;
            string affiliateSubId = "SubAffiliate" + divisionNumber;

            trans.affiliateSubId = affiliateSubId;
            string billingAddressCity = "Any City";

            trans.billingAddressCity = billingAddressCity;
            string billingAddressCountry = "US";

            trans.billingAddressCountry = billingAddressCountry;
            string billingAddressCounty = "Any County";

            trans.billingAddressCounty = billingAddressCounty;
            string billingAddressDistrict = "Any State (i.e. District)";

            trans.billingAddressDistrict = billingAddressDistrict;
            string billingAddressLine1 = "123 Main (Address Line 1)";

            trans.billingAddressLine1 = billingAddressLine1;
            string billingAddressLine2 = "Suite 5 (Address Line 2)";

            trans.billingAddressLine2 = billingAddressLine2;
            string billingAddressLine3 = "Internet Widgets Co. Ltd. (Address Line 3)";

            trans.billingAddressLine3 = billingAddressLine3;
            string billingAddressPostalCode = "94002";

            trans.billingAddressPostalCode = billingAddressPostalCode;
            DateTime startDate = DateTime.Now.AddYears(-1);

            trans.subscriptionStartDate = startDate;

            return(trans);
        }
Beispiel #13
0
        public string run(Select select, Authentication auth, string transactionId)
        {
            int    returnCode;
            string returnString;
            string soapId = null;

            log(timestamp() + " BillSelect.run(): merchantTransactionId=" + transactionId);

            select.Timeout = 10000;

            // get Transaction array to submit:
            Transaction[] transactions = new Transaction[1];
            for (int i = 0; i < transactions.Length; i++)
            {
                transactions[i] = getTransaction(transactionId + i);
            }

            for (int i = 0; i < transactions.Length; i++)
            {
                Transaction           tx     = transactions[i];
                TransactionStatusType status = tx.status;
                log("merchantTransactionId " + tx.merchantTransactionId
                    + " with status " + tx.status
                    + " , authCode " + tx.authCode
                    + " on " + tx.timestamp
                    + " for " + tx.amount + " " + tx.currency
                    );
            }

            try {
                // make the call to billTransactions:
                log("Beginning request to bill transactions");
                TransactionValidationResponse[] transactionValidationResponse;
                Return _return = select.billTransactions(auth, transactions, out transactionValidationResponse);

                log("Completed request to bill transactions");
                // Return.returnCode
                returnCode = _return.returnCode;
                // Return.returnString
                returnString = _return.returnString;
                // Return.soapId
                soapId = _return.soapId;

                // returnCode is numeric value as in: if (returnCode == 200)
                log("billTransactions ReturnCode: " + returnCode);
                log("billTransactions ReturnString: " + returnString);
                log(timestamp() + " billTransactions soapId: " + soapId);

                if (200 == returnCode)
                {
                    for (int j = 0; null != transactionValidationResponse && j < transactionValidationResponse.Length; j++)
                    {
                        log("validationResult[" + j + "]=" + transactionValidationResponse[j].code + ", "
                            + transactionValidationResponse[j].description + ", "
                            + "merchantTransactionId=" + transactionValidationResponse[j].merchantTransactionId);
                    }
                }
                else
                {
                    log(timestamp() + " SEL001_BillSelect: billTransactions failed: " + returnCode +
                        " - " + returnString + ", soapId: " + soapId + "\n");
                }
            }
            catch (Exception e)
            {
                log(timestamp() + " SEL001_BillSelect: billTransactions failed: " + e.Message + "\n");
            }

            return(soapId);
        }
Beispiel #14
0
 public JS_TransactionState_Reply(TransactionStatusType transactionStatusType,
  TransactionProcessingResult transactionProcessingResult,
     int validationsCount = 0, long ledgerSequence = 0)
 {
     //Transaction = new JS_TransactionReply(transactionContent);
     TransactionStatusType = transactionStatusType;
     TransactionProcessingResult = transactionProcessingResult;
     ValidationsCount = validationsCount;
     LedgerSequence = ledgerSequence;
 }