public QueryTransactionStatusResponseViewModel(QueryTransactionStatusResponse domain) { ApiVersion = Const.MERCHANT_API_VERSION; Timestamp = domain.Timestamp; Txid = domain.Txid; ReturnResult = domain.ReturnResult; ResultDescription = domain.ResultDescription; BlockHash = domain.BlockHash; BlockHeight = domain.BlockHeight; Confirmations = domain.Confirmations; MinerId = domain.MinerID; TxSecondMempoolExpiry = domain.TxSecondMempoolExpiry; }
public QueryTransactionStatusResponse QueryTransactionStatus(QueryTransactionStatusRequest requestData) { QueryTransactionStatusResponse resp = new QueryTransactionStatusResponse(); try { DataTable dt = dh.GetTransactionStatus(requestData); if (dt.Rows.Count > 0) { DataRow row = dt.Rows[0]; resp.Status = new Status(); resp.Status.StatusCode = "100"; resp.Status.Description = "Successful"; resp.PayLoad.C360UniqueID = row["Id"].ToString(); string status = row["Status"].ToString().ToUpper(); //string if (status.Equals("SUCCESS")) { string token = row["Reason"].ToString(); resp.PayLoad.Description = "SUCCESSFUL|" + token; resp.PayLoad.ReferenceID = requestData.PayLoad.ReferenceID; resp.PayLoad.StatusCode = "200"; } else if (status.Equals("PENDING")) { resp.PayLoad.Description = "Request is pending. Scheduled for processing"; resp.PayLoad.ReferenceID = requestData.PayLoad.ReferenceID; resp.PayLoad.StatusCode = "0"; } else if (status.Equals("FAILED")) { resp.PayLoad.Description = "Failed"; resp.PayLoad.ReferenceID = requestData.PayLoad.ReferenceID; resp.PayLoad.StatusCode = "202"; } else { resp.PayLoad.Description = "Request is Pending."; resp.PayLoad.ReferenceID = requestData.PayLoad.ReferenceID; resp.PayLoad.StatusCode = "0"; } } else { resp.Status = new Status(); resp.Status.StatusCode = "100"; resp.Status.Description = "Successful";//"No Record of Transaction " + requestData.PayLoad.ReferenceID + " at Pegasus"; resp.PayLoad.C360UniqueID = ""; resp.PayLoad.Description = "No Record of Transaction " + requestData.PayLoad.ReferenceID + " at Pegasus"; resp.PayLoad.ReferenceID = requestData.PayLoad.ReferenceID; resp.PayLoad.StatusCode = "203"; } } catch (Exception e) { resp.Status = new Status(); resp.Status.StatusCode = "106"; resp.Status.Description = "Technical error. Try and query again"; } return(resp); }
public QueryTransactionStatusResponse QueryTransactionStatus(QueryTransactionStatusRequest requestData) { string strCert = null; //Hashing the password try { string text = requestData.Credentials.Password; string certificate = @"E:\Certs\pegasus.pfx"; X509Certificate2 cert = new X509Certificate2(certificate, "Tingate710", X509KeyStorageFlags.UserKeySet); RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey; // Hash the data SHA1Managed sha1 = new SHA1Managed(); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data = encoding.GetBytes(text); byte[] hash = sha1.ComputeHash(data); // Sign the hash byte[] digitalCert = rsa.SignHash(hash, CryptoConfig.MapNameToOID("SHA1")); strCert = Convert.ToBase64String(digitalCert); } catch (Exception e) { dh.LogErrorKCB("", "", DateTime.Now, "", "", e.Message, ""); } if (String.IsNullOrEmpty(strCert)) { password = ""; } else { password = strCert; } dh.SaveRequestlog(requestData.PayLoad.ReferenceID, requestData.Credentials.Username, "", password, "VERIFICATION", DateTime.Now); QueryTransactionStatusResponse resp = new QueryTransactionStatusResponse(); try { if (requestData.IsValidRequest()) { resp = bll.QueryTransactionStatus(requestData); } else { resp.Status.StatusCode = "200"; resp.Status.Description = "Successful"; resp.PayLoad.StatusCode = requestData.PegPayStatusCode; resp.PayLoad.Description = requestData.PegPayStatusDescription; } } catch (Exception e) { requestData.PegPayStatusCode = "106"; requestData.PegPayStatusDescription = "GENERAL ERROR AT PEGASUS"; resp.Status.StatusCode = requestData.PegPayStatusCode; resp.Status.Description = requestData.PegPayStatusDescription; //dh.LogError("SendPendingTransactionsToUtility TranId: " + tran.VendorTranId + " : " + e.Message, tran.VendorCode, DateTime.Now, tran.UtilityCompany); } return(resp); }