using System; using System.Text; namespace n5coredll { public class RefundResult { private static string TXN_ID = "TXN_ID"; private static string STATUS = "STATUS"; private static string TXN_AMT = "TXN_AMT"; private static string PAYMENT_TYPE = "PAYMENT_TYPE"; private static string RESP_CODE = "RESP_CODE"; 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 AUTH_CODE = "AUTH_CODE"; 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 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 PaymentType paymentType; private string respCode; private string traceNo; private string txnDate; private string txnTime; private string hostRef; private string couponId; private string authCode; 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 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 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 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 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 Mid { get { return mid; } } private void setMid(string pMid) { this.mid = pMid; } public string Tid { get { return tid; } } private void setTid(string pTid) { this.tid = pTid; } public string Pan { get { return pan; } } private void setPan(string pPan) { this.pan = pPan; } public string ExpiryDate { get { return expiryDate; } } private void setExpiryDate(string pExpiryDate) { this.expiryDate = pExpiryDate; } public string Aid { get { 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; } public RefundResult() { } public RefundResult(string pStatus) { this.setStatus(pStatus); } private static string curTxnId; public static string getCurTxnId() { return curTxnId; } public static string toJsonForRefund(decimal txnAmt, PaymentApp appId, string qrcValue) { string thisTxnId = getTxnId(); if (thisTxnId == null || "".Equals(thisTxnId)) { Console.WriteLine("getTxnId is null "); return null; } curTxnId = thisTxnId; string cardRefundMsg = "{\"EVENT_NAME\":\"REFUND\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + thisTxnId + "\",\"QRC_VALUE\":\"" + qrcValue + "\",\"TXN_AMT\":" + txnAmt.ToString() + "}"; return cardRefundMsg; } public static string toJsonForRefund(string txnIId, decimal txnAmt, PaymentApp appId, string qrcValue) { string cardRefundMsg = "{\"EVENT_NAME\":\"REFUND\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnIId + "\",\"QRC_VALUE\":\"" + qrcValue + "\",\"TXN_AMT\":" + txnAmt.ToString() + "}"; return cardRefundMsg; } 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 static RefundResult toRefundResultFromJsonMsg(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; RefundResult RefundResult = new RefundResult(); for (int i = 0; i < column.Length; i++) { valueColumn = column[i].Split(':'); valueColumn0 = valueColumn[0].Replace('"', ' ').Trim(); valueColumn1 = valueColumn[1].Replace('"', ' ').Trim(); if (RefundResult.TXN_ID.Equals(valueColumn0)) { RefundResult.setEcrRefTxnId(valueColumn1); } if (RefundResult.STATUS.Equals(valueColumn0)) { RefundResult.setStatus(valueColumn1); } if (RefundResult.TXN_AMT.Equals(valueColumn0)) { if (valueColumn1 == null || "".Equals(valueColumn1)) { RefundResult.setTxnAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint)); } else { RefundResult.setTxnAmt(decimal.Parse(valueColumn1)); } } if (RefundResult.PAYMENT_TYPE.Equals(valueColumn0)) { RefundResult.setPaymentType(ObjectUtil.getPaymentType(valueColumn1)); } if (RefundResult.RESP_CODE.Equals(valueColumn0)) { RefundResult.setRespCode(valueColumn1); } if (RefundResult.TRACE_NO.Equals(valueColumn0)) { RefundResult.setTraceNo(valueColumn1); } if (RefundResult.TXN_DATE.Equals(valueColumn0)) { RefundResult.setTxnDate(valueColumn1); } if (RefundResult.TXN_TIME.Equals(valueColumn0)) { RefundResult.setTxnTime(valueColumn1); } if (RefundResult.HOST_REF.Equals(valueColumn0)) { RefundResult.setHostRef(valueColumn1); } if (RefundResult.AUTH_CODE.Equals(valueColumn0)) { RefundResult.setAuthCode(valueColumn1); } if (RefundResult.LOCAL_CUR.Equals(valueColumn0)) { RefundResult.setLocalCur(valueColumn1); } if (RefundResult.FOREIGN_CUR.Equals(valueColumn0)) { RefundResult.setForeignCur(valueColumn1); } if (RefundResult.FXRATE.Equals(valueColumn0)) { RefundResult.setFxRate(valueColumn1); } if (RefundResult.FOREIGN_AMT.Equals(valueColumn0)) { RefundResult.setForeignAmt(valueColumn1); } if (RefundResult.MID.Equals(valueColumn0)) { RefundResult.setMid(valueColumn1); } if (RefundResult.TID.Equals(valueColumn0)) { RefundResult.setTid(valueColumn1); } if (RefundResult.PAN.Equals(valueColumn0)) { RefundResult.setPan(valueColumn1); } if (RefundResult.EXPIRY_DATE.Equals(valueColumn0)) { RefundResult.setExpiryDate(valueColumn1); } if (RefundResult.AID.Equals(valueColumn0)) { RefundResult.setAid(valueColumn1); } if (RefundResult.ENTRY_MODE.Equals(valueColumn0)) { RefundResult.setEntryMode(valueColumn1); } if (RefundResult.BATCH_NO.Equals(valueColumn0)) { RefundResult.setBatchNo(valueColumn1); } if (RefundResult.APP.Equals(valueColumn0)) { RefundResult.setApp(valueColumn1); } if (RefundResult.TC.Equals(valueColumn0)) { RefundResult.setTc(valueColumn1); } if (RefundResult.ACQUIRER.Equals(valueColumn0)) { RefundResult.setAcquirer(valueColumn1); } } return RefundResult; } } }