예제 #1
0
        public static CommonResponse InvokeCheckTransactionStatus(string MerchantId, string MerchantName, string MerchantTxnId, string ApiUsername, string ApiPassword, string ApiSecretKey)
        {
            ApiLogBusiness          _apiLog = new ApiLogBusiness();
            CheckTransactionRequest checkTran;

            using (WebClient client = new WebClient())
            {
                client.Credentials = new NetworkCredential(ApiUsername, ApiPassword);
                var postValues = new NameValueCollection();
                postValues["MerchantId"]    = MerchantId;
                postValues["MerchantName"]  = MerchantName;
                postValues["MerchantTxnId"] = MerchantTxnId;
                postValues["Signature"]     = HMACSignatureGenerator.SHA512_ComputeHash(CommonFunctions.SingnatureGenerator <CheckTransactionRequest>(checkTran = new CheckTransactionRequest {
                    MerchantId = MerchantId, MerchantName = MerchantName, MerchantTxnId = MerchantTxnId
                }), ApiSecretKey);
                var response       = client.UploadValues(GetApiUrl() + "/CheckTransactionStatus", "Post", postValues);
                var responseString = Encoding.Default.GetString(response);
                var responseModel  = responseString.SerializeJSON <CommonResponse>();

                //maintain log
                var transactionModel = ApplicationUtilities.MapObject <CheckTransactionResponse>(responseModel.data);

                _apiLog.InsertApiLog(new ApiLogCommon()
                {
                    transacionId    = transactionModel.MerchantTxnId,
                    partner_tran_id = transactionModel.GatewayReferenceNo,
                    apiRequest      = JsonConvert.SerializeObject(checkTran),
                    apiResponse     = responseModel.data.SerializeObjectToJSON(),
                    userId          = HttpContext.Current != null && HttpContext.Current.Session != null && HttpContext.Current.Session["UserName"] != null ? HttpContext.Current.Session["UserName"].ToString() : "system",
                    IpAddress       = ApplicationUtilities.GetIP(),
                    functionName    = "CheckTransactionStatus"
                });

                //end

                //CheckTransactionResponse
                //var s = responseModel.data.ToString();
                ////var s1 = s.Split(new char [] { ':'});
                //var getProcessId = responseModel.data.ToString().SerializeJSON<ProcessIdResponse>();
                //if (getProcessId != null)
                //{
                //    return getProcessId.ProcessId;
                //}
                return(responseModel);
            }
        }
        public RedirectionFormData GetFormObject(string MerchantId, string MerchantName, string MerchantTxnId, string Amount, string TransactionRemarks, string InstrumentCode = "")
        {
            var service = ServiceFactory.Create(appName: AppName);

            if (service == null)
            {
                return(new RedirectionFormData()
                {
                    code = "1", message = "Error", errors = new List <Errors>()
                    {
                        new Errors()
                        {
                            error_code = "1", error_message = "Service Initialization Failed"
                        }
                    }
                });
            }
            //add api parameters here
            ProcessIdRequest request = new ProcessIdRequest()
            {
                MerchantId         = MerchantId,
                MerchantName       = MerchantName,
                Amount             = Amount,
                MerchantTxnId      = MerchantTxnId,
                TransactionRemarks = TransactionRemarks
            };
            //insert log
            var logRes = _log.InsertApiLog(new shared.Models.Log.ApiLogCommon()
            {
                transacionId    = string.Empty,
                partner_tran_id = string.Empty,
                apiRequest      = request.SerializeObjectToJSON(),
                apiResponse     = string.Empty,
                userId          = UserId,
                IpAddress       = "::1",
                functionName    = "GetProcessId"
            });

            //end log
            service.SecretKey          = SecretKey;
            service.ApiUsername        = ApiUsername;
            service.ApiPassword        = ApiPassword;
            service.ProcessRequestData = request;
            service.AppName            = AppName;
            service.UserId             = UserId;
            var response = service.GetRedirectionFormObject(InstrumentCode);
            var res      = ApplicationUtilities.MapObject <RedirectionFormData>(response);

            if (res.code == "0")
            {
                //log
                if (logRes.Id != null)
                {
                    _log.UpdateApiLog(new shared.Models.Log.ApiLogCommon()
                    {
                        transacionId    = string.Empty,
                        partner_tran_id = string.Empty,
                        apiResponse     = res.SerializeObjectToJSON(),
                        IpAddress       = "::1",
                        userId          = UserId,
                        apiLogId        = logRes.Id
                    });
                }
                //end log
            }
            else
            {
                //log
                if (logRes.Id != null)
                {
                    _log.UpdateApiLog(new shared.Models.Log.ApiLogCommon()
                    {
                        transacionId    = string.Empty,
                        partner_tran_id = string.Empty,
                        apiResponse     = res.SerializeObjectToJSON(),
                        IpAddress       = "::1",
                        userId          = UserId,
                        apiLogId        = logRes.Id
                    });
                }
                //end
            }
            return(res);
        }
        public TransactionStatus GetTransactionDetail(string MerchantId, string MerchantName,
                                                      string MerchantTxnId)
        {
            var service = ServiceFactory.Create(appName: AppName);

            if (service == null)
            {
                return(new TransactionStatus()
                {
                    code = "1", message = "Error", errors = new List <Errors>()
                    {
                        new Errors()
                        {
                            error_code = "1", error_message = "Service Initialization Failed"
                        }
                    }
                });
            }
            //add api parameters here
            CheckTransactionRequest request = new CheckTransactionRequest()
            {
                MerchantId    = MerchantId,
                MerchantTxnId = MerchantTxnId,
                MerchantName  = MerchantName
            };
            var logRes = _log.InsertApiLog(new shared.Models.Log.ApiLogCommon()
            {
                transacionId    = request.MerchantTxnId,
                partner_tran_id = "",
                apiRequest      = request.SerializeObjectToJSON(),
                apiResponse     = "",
                userId          = UserId,
                IpAddress       = "::1",
                functionName    = "CheckTransactionStatus"
            });

            service.SecretKey              = SecretKey;
            service.ApiUsername            = ApiUsername;
            service.ApiPassword            = ApiPassword;
            service.AppName                = AppName;
            service.UserId                 = UserId;
            service.TransactionRequestData = request;
            var response = service.GetTransactionStatus();
            var res      = ApplicationUtilities.MapObject <TransactionStatus>(response);

            if (res.code == "0")
            {
                //log
                if (logRes.Id != null)
                {
                    _log.UpdateApiLog(new shared.Models.Log.ApiLogCommon()
                    {
                        transacionId    = request.MerchantTxnId,
                        partner_tran_id = res.data.GatewayReferenceNo,
                        apiResponse     = res.SerializeObjectToJSON(),
                        IpAddress       = "::1",
                        userId          = UserId,
                        apiLogId        = logRes.Id
                    });
                }
                //end
            }
            else
            {
                //log
                if (logRes.Id != null)
                {
                    _log.UpdateApiLog(new shared.Models.Log.ApiLogCommon()
                    {
                        transacionId    = request.MerchantTxnId,
                        partner_tran_id = string.Empty,
                        apiResponse     = res.SerializeObjectToJSON(),
                        IpAddress       = "::1",
                        userId          = UserId,
                        apiLogId        = logRes.Id
                    });
                }
                //end
            }

            //end log

            return(res);
        }
        public BankResponse GetPaymentInstrumentDetail(string MerchantId, string MerchantName
                                                       )
        {
            var service = ServiceFactory.Create(appName: AppName);

            if (service == null)
            {
                return(new BankResponse()
                {
                    code = "1", message = "Error", errors = new List <Errors>()
                    {
                        new Errors()
                        {
                            error_code = "1", error_message = "Service Initialization Failed"
                        }
                    }
                });
            }
            //add api parameters here
            PaymentInstrument.Request request = new PaymentInstrument.Request()
            {
                MerchantId   = MerchantId,
                MerchantName = MerchantName
            };
            //log
            var logRes = _log.InsertApiLog(new shared.Models.Log.ApiLogCommon()
            {
                transacionId    = string.Empty,
                partner_tran_id = string.Empty,
                apiRequest      = request.SerializeObjectToJSON(),
                apiResponse     = string.Empty,
                userId          = UserId,
                IpAddress       = "::1",
                functionName    = "GetPaymentInstrumentDetails"
            });

            //end log
            service.SecretKey             = SecretKey;
            service.ApiUsername           = ApiUsername;
            service.ApiPassword           = ApiPassword;
            service.PaymentInstrumentData = request;
            service.AppName = AppName;
            service.UserId  = UserId;
            var response = service.GetPaymentInstrument();
            var res      = ApplicationUtilities.MapObject <BankResponse>(response);

            if (res.code == "0")
            {
                //log
                if (logRes.Id != null)
                {
                    _log.UpdateApiLog(new shared.Models.Log.ApiLogCommon()
                    {
                        transacionId    = string.Empty,
                        partner_tran_id = string.Empty,
                        apiResponse     = res.SerializeObjectToJSON(),
                        IpAddress       = "::1",
                        userId          = UserId,
                        apiLogId        = logRes.Id
                    });
                }
                //end log
            }
            else
            {
                //log
                if (logRes.Id != null)
                {
                    _log.UpdateApiLog(new shared.Models.Log.ApiLogCommon()
                    {
                        transacionId    = string.Empty,
                        partner_tran_id = string.Empty,
                        apiResponse     = res.SerializeObjectToJSON(),
                        IpAddress       = "::1",
                        userId          = UserId,
                        apiLogId        = logRes.Id
                    });
                }
                //end
            }

            return(res);
        }