using System; using System.Text; namespace n5coredll { public class SaleResult { private static string TXN_ID = "TXN_ID"; private static string STATUS = "STATUS"; private static string TXN_AMT = "TXN_AMT"; private static string TIPS = "TIPS"; private static string PAYMENT_TYPE = "PAYMENT_TYPE"; private static string RESP_CODE = "RESP_CODE"; private static string LOYALTY_TYPE = "LOYALTY_TYPE"; private static string CAMPAIGN_ID = "CAMPAIGN_ID"; private static string TRACE_NO = "TRACE_NO"; private static string TXN_DATE = "TXN_DATE"; private static string TXN_TIME = "TXN_TIME"; private static string HOST_REF = "HOST_REF"; private static string COUPON_ID = "COUPON_ID"; private static string AUTH_CODE = "AUTH_CODE"; private static string AUTH_AMT = "AUTH_AMT"; private static string DISCOUNT = "DISCOUNT"; private static string LOCAL_CUR = "LOCAL_CUR"; private static string FOREIGN_CUR = "FOREIGN_CUR"; private static string FXRATE = "FXRATE"; private static string FOREIGN_AMT = "FOREIGN_AMT"; private static string MID = "MID"; private static string TID = "TID"; private static string PAN = "PAN"; private static string EXPIRY_DATE = "EXPIRY_DATE"; private static string LOYALTY_REF = "LOYALTY_REF"; private static string AID = "AID"; private static string ENTRY_MODE = "ENTRY_MODE"; private static string BATCH_NO = "BATCH_NO"; private static string TC = "TC"; private static string APP = "APP"; private static string ACQUIRER = "ACQUIRER"; private string ecrRefTxnId; private string status; private decimal txnAmt; private decimal tipAmt; private PaymentType paymentType; private string respCode; private LoyaltyType loyaltyType; private string campaignId; private string traceNo; private string txnDate; private string txnTime; private string hostRef; private string couponId; private string authCode; private string authAmt; private string discAmt; private string localCur; private string foreignCur; private string fxRate; private string foreignAmt; private string mid; private string tid; private string pan; private string expiryDate; private string loyaltyRef; private string aid; private string entryMode; private string batchNo; private string tc; private string app; private string acquirer; private void setEcrRefTxnId(string pEcrRefTxnId) { ecrRefTxnId = pEcrRefTxnId; } public string EcrRefTxnId { get { return ecrRefTxnId; } } public string Status { get { return status; } } private void setStatus(string pStatus) { this.status = pStatus; } public decimal TxnAmt { get { return txnAmt; } } private void setTxnAmt(decimal pTxnAmt) { this.txnAmt = pTxnAmt; } public decimal TipAmt { get { return tipAmt; } } private void setTipAmt(decimal pTipAmt) { this.tipAmt = pTipAmt; } public PaymentType PaymentType { get { return paymentType; } } private void setPaymentType(PaymentType pPaymentType) { this.paymentType = pPaymentType; } public string RespCode { get { return respCode; } } private void setRespCode(string pRespCode) { this.respCode = pRespCode; } public LoyaltyType LoyaltyType { get { return loyaltyType; } } private void setLoyaltyType(LoyaltyType pLoyaltyType) { this.loyaltyType = pLoyaltyType; } public string CampaignId { get { return campaignId; } } private void setCampaignId(string pCampaignId) { this.campaignId = pCampaignId; } public string TraceNo { get { return traceNo; } } private void setTraceNo(string pTraceNo) { this.traceNo = pTraceNo; } public string TxnDate { get { return txnDate; } } private void setTxnDate(string pTxnDate) { this.txnDate = pTxnDate; } public string TxnTime { get { return txnTime; } } private void setTxnTime(string pTxnTime) { this.txnTime = pTxnTime; } public string HostRef { get { return hostRef; } } private void setHostRef(string pHostRef) { this.hostRef = pHostRef; } public string CouponId { get { return couponId; } } private void setCouponId(string pCouponId) { this.couponId = pCouponId; } public string AuthCode { get { return authCode; } } private void setAuthCode(string pAuthCode) { this.authCode = pAuthCode; } public string AuthAmt { get { return authAmt; } } private void setAuthAmt(string pAuthAmt) { this.authAmt = pAuthAmt; } public string DiscAmt { get { return discAmt; } } private void setDiscAmt(string pDiscAmt) { this.discAmt = pDiscAmt; } public string LocalCur { get { return localCur; } } private void setLocalCur(string pLocalCur) { this.localCur = pLocalCur; } public string ForeignCur { get { return foreignCur; } } private void setForeignCur(string pForeignCur) { this.foreignCur = pForeignCur; } public string FxRate { get { return fxRate; } } private void setFxRate(string pFxRate) { this.fxRate = pFxRate; } public string ForeignAmt { get { return foreignAmt; } } private void setForeignAmt(string pForeignAmt) { this.foreignAmt = pForeignAmt; } public string getMid() { return mid; } private void setMid(string pMid) { this.mid = pMid; } public string getTid() { return tid; } private void setTid(string pTid) { this.tid = pTid; } public string getPan() { return pan; } private void setPan(string pPan) { this.pan = pPan; } public string getExpiryDate() { return expiryDate; } private void setExpiryDate(string pExpiryDate) { this.expiryDate = pExpiryDate; } public string getLoyaltyRef() { return loyaltyRef; } private void setLoyaltyRef(string pLoyaltyRef) { this.loyaltyRef = pLoyaltyRef; } public string getAid() { return aid; } private void setAid(string pAid) { this.aid = pAid; } public string EntryMode { get { return entryMode; } } private void setEntryMode(string pEntryMode) { this.entryMode = pEntryMode; } public string BatchNo { get { return batchNo; } } private void setBatchNo(string pBatchNo) { this.batchNo = pBatchNo; } public string Tc { get { return tc; } } private void setTc(string pTc) { this.tc = pTc; } public string App { get { return app; } } private void setApp(string pApp) { this.app = pApp; } public string Acquirer { get { return acquirer; } } private void setAcquirer(string pAcquirer) { this.acquirer = pAcquirer; } private static string curTxnId; public static string toJsonForSale(string txnId, decimal txnAmt, decimal tipAmt, PaymentApp appId, string qrcValue) { string cardSaleMsg = "{\"EVENT_NAME\":\"SALE\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TIPS\":" + tipAmt + ",\"TXN_AMT\":" + txnAmt + ",\"QRC_VALUE\":\"" + qrcValue + "\"}"; return cardSaleMsg; } public static string toJsonForSale(string txnId, decimal txnAmt, decimal tipAmt, PaymentApp appId, string qrcValue, string pan, string expDate) { string cardSaleMsg = "{\"EVENT_NAME\":\"SALE\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TIPS\":" + tipAmt + ",\"TXN_AMT\":" + txnAmt + ",\"PAN\":\"" + pan + "\",\"EXPIRY_DATE\":\"" + expDate + "\",\"QRC_VALUE\":\"" + qrcValue + "\"}"; return cardSaleMsg; } public static string toJsonForPreauth(string txnId, decimal txnAmt, PaymentApp appId, string pan, string expDate) { string cardSaleMsg = "{\"EVENT_NAME\":\"PREAUTH\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TXN_AMT\":" + txnAmt + ",\"PAN\":\"" + pan + "\",\"EXPIRY_DATE\":\"" + expDate + "\"}"; return cardSaleMsg; } public static string toJsonForOffline(string txnId, decimal txnAmt, PaymentApp appId, string authCode, string pan, string expDate) { string cardSaleMsg = "{\"EVENT_NAME\":\"OFFLINE\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TXN_AMT\":" + txnAmt + ",\"AUTH_CODE\":\"" + authCode + "\""+ ",\"PAN\":\"" + pan + "\",\"EXPIRY_DATE\":\"" + expDate + "\"}"; return cardSaleMsg; } public static string toJsonForAdjust(string txnId, decimal totalAmt, decimal totalForeignAmt, PaymentApp appId) { string cardSaleMsg = "{\"EVENT_NAME\":\"ADJUST\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TOTAL_TXN_AMT\":" + totalAmt + ",\"TOTAL_FOREIGN_AMT\":" + totalForeignAmt + "}"; return cardSaleMsg; } private static string getTxnId() { StringBuilder txnIdSb = new StringBuilder(); DateTime dt = DateTime.Now; txnIdSb.Append(dt.ToString("yyyyMMddHHmmssfff")); Console.WriteLine("txnIdSb = " + txnIdSb.ToString()); int randomTime = 0; if (dt.Ticks.ToString().Length > 8) { Console.WriteLine("Ticks.Length > 8 = " + dt.Ticks.ToString()); randomTime = int.Parse(dt.Ticks.ToString().Substring(0, 8)); } else { randomTime = int.Parse(dt.Ticks.ToString()); } if (randomTime > 0) { Random random = new Random(randomTime); for (int i = 0; i < 15; i++) { int thidRandom = random.Next(10); txnIdSb.Append(thidRandom); } Console.WriteLine("txnIdSb.ToString = " + txnIdSb.ToString()); return txnIdSb.ToString(); } else { Console.WriteLine("randomTime is error = " + randomTime); } return ""; } public SaleResult() { } public SaleResult(string pStatus) { this.setStatus(pStatus); } public static SaleResult toSaleResultFromJsonMsg(string jsonMsg) { if (jsonMsg == null || !jsonMsg.StartsWith("{") || !jsonMsg.EndsWith("}")) { return null; } int jsonLength = jsonMsg.Length; jsonMsg = jsonMsg.Substring(0, jsonLength - 1); jsonMsg = jsonMsg.Substring(1, jsonLength - 2); string[] column = jsonMsg.Split(','); string[] valueColumn = null; string valueColumn0 = null; string valueColumn1 = null; SaleResult saleResult = new SaleResult(); for (int i = 0; i < column.Length; i++) { valueColumn = column[i].Split(':'); valueColumn0 = valueColumn[0].Replace('"', ' ').Trim(); valueColumn1 = valueColumn[1].Replace('"', ' ').Trim(); if (SaleResult.TXN_ID.Equals(valueColumn0)) { saleResult.setEcrRefTxnId(valueColumn1); } if (SaleResult.STATUS.Equals(valueColumn0)) { saleResult.setStatus(valueColumn1); } if (SaleResult.TXN_AMT.Equals(valueColumn0)) { if (valueColumn1 == null || "".Equals(valueColumn1)) { saleResult.setTxnAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint)); } else { saleResult.setTxnAmt(decimal.Parse(valueColumn1)); } } if (SaleResult.TIPS.Equals(valueColumn0)) { if (valueColumn1 == null || "".Equals(valueColumn1)) { saleResult.setTipAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint)); } else { saleResult.setTipAmt(decimal.Parse(valueColumn1, System.Globalization.NumberStyles.AllowDecimalPoint)); } } if (SaleResult.PAYMENT_TYPE.Equals(valueColumn0)) { saleResult.setPaymentType(ObjectUtil.getPaymentType(valueColumn1)); } if (SaleResult.RESP_CODE.Equals(valueColumn0)) { saleResult.setRespCode(valueColumn1); } if (SaleResult.LOYALTY_TYPE.Equals(valueColumn0)) { saleResult.setLoyaltyType(ObjectUtil.getLoyaltyType(valueColumn1)); } if (SaleResult.CAMPAIGN_ID.Equals(valueColumn0)) { saleResult.setCampaignId(valueColumn1); } if (SaleResult.TRACE_NO.Equals(valueColumn0)) { saleResult.setTraceNo(valueColumn1); } if (SaleResult.TXN_DATE.Equals(valueColumn0)) { saleResult.setTxnDate(valueColumn1); } if (SaleResult.TXN_TIME.Equals(valueColumn0)) { saleResult.setTxnTime(valueColumn1); } if (SaleResult.HOST_REF.Equals(valueColumn0)) { saleResult.setHostRef(valueColumn1); } if (SaleResult.COUPON_ID.Equals(valueColumn0)) { saleResult.setCouponId(valueColumn1); } if (SaleResult.AUTH_CODE.Equals(valueColumn0)) { saleResult.setAuthCode(valueColumn1); } if (SaleResult.AUTH_AMT.Equals(valueColumn0)) { saleResult.setAuthAmt(valueColumn1); } if (SaleResult.DISCOUNT.Equals(valueColumn0)) { saleResult.setDiscAmt(valueColumn1); } if (SaleResult.LOCAL_CUR.Equals(valueColumn0)) { saleResult.setLocalCur(valueColumn1); } if (SaleResult.FOREIGN_CUR.Equals(valueColumn0)) { saleResult.setForeignCur(valueColumn1); } if (SaleResult.FXRATE.Equals(valueColumn0)) { saleResult.setFxRate(valueColumn1); } if (SaleResult.FOREIGN_AMT.Equals(valueColumn0)) { saleResult.setForeignAmt(valueColumn1); } if (SaleResult.MID.Equals(valueColumn0)) { saleResult.setMid(valueColumn1); } if (SaleResult.TID.Equals(valueColumn0)) { saleResult.setTid(valueColumn1); } if (SaleResult.PAN.Equals(valueColumn0)) { saleResult.setPan(valueColumn1); } if (SaleResult.EXPIRY_DATE.Equals(valueColumn0)) { saleResult.setExpiryDate(valueColumn1); } if (SaleResult.LOYALTY_REF.Equals(valueColumn0)) { saleResult.setLoyaltyRef(valueColumn1); } if (SaleResult.AID.Equals(valueColumn0)) { saleResult.setAid(valueColumn1); } if (SaleResult.ENTRY_MODE.Equals(valueColumn0)) { saleResult.setEntryMode(valueColumn1); } if (SaleResult.BATCH_NO.Equals(valueColumn0)) { saleResult.setBatchNo(valueColumn1); } if (SaleResult.APP.Equals(valueColumn0)) { saleResult.setApp(valueColumn1); } if (SaleResult.TC.Equals(valueColumn0)) { saleResult.setTc(valueColumn1); } if (SaleResult.ACQUIRER.Equals(valueColumn0)) { saleResult.setAcquirer(valueColumn1); } } return saleResult; } } }