public TransactionInfo(Guid transactionKey, DateTime date, double amount, TransactionStatusType transactionStatusType) { TransactionKey = transactionKey; CreateDate = date; Amount = amount; TransactionStatusType = transactionStatusType; }
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); }
public bool SetStatusUnauthorized() { StatusTransitionValidate(TransactionStatusType.Unauthorized); this.TransactionStatusType = TransactionStatusType.Unauthorized; return(true); }
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); }
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; }
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); }
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); }
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; }