コード例 #1
0
 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;
 }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }