public PaymentVerifyResponse Verify(JObject providerRequest) { var result = new PaymentVerifyResponse() { Status = PaymentStatus.Unkonwn, Parameters = new Dictionary<string, string>() { } }; var refId = ((JValue)(providerRequest["RefId"])).Value.ToString(); var resCode = ((JValue)(providerRequest["ResCode"])).Value.ToString(); var saleOrderId = long.Parse(((JValue)(providerRequest["SaleOrderId"])).Value.ToString()); var saleReferenceId = long.Parse(((JValue)(providerRequest["SaleReferenceId"])).Value.ToString()); if (PaymentStatusFromString(resCode) == PaymentStatus.Success) { try { BypassCertificateError(); WebUI.MellatBank.PaymentGatewayImplService bp = new WebUI.MellatBank.PaymentGatewayImplService(); var bankResult = bp.bpVerifyRequest(TerminalId, UserName, Password, saleOrderId, saleOrderId, saleReferenceId); if (!string.IsNullOrEmpty(bankResult)) { result.Status = PaymentStatusFromString(bankResult); } else { bankResult = bp.bpInquiryRequest(TerminalId, UserName, Password, saleOrderId, saleOrderId, saleReferenceId); if (!string.IsNullOrEmpty(bankResult)) { result.Status = PaymentStatusFromString(bankResult); } else { bankResult = bp.bpReversalRequest(TerminalId, UserName, Password, saleOrderId, saleOrderId, saleReferenceId); result.Status = !string.IsNullOrEmpty(bankResult) ? PaymentStatusFromString(bankResult) : PaymentStatus.UnSuccess; } } } catch (Exception) { } } result.Parameters.Add("Code", PaymentStatusToString(result.Status)); result.Parameters.Add("Description", result.Status.ToString()); result.Parameters.Add("RefId", refId); result.Parameters.Add("ResCode", resCode); result.Parameters.Add("SaleOrderId", saleOrderId.ToString()); result.Parameters.Add("SaleReferenceId", saleReferenceId.ToString()); result.Parameters.Add("HTML", File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath(@"~\Payment\callback.html")) .Replace("%Result%", JsonConvert.SerializeObject(result)) ); if (false) { // ??? InvoiceProvider.Finalize(saleOrderId, "Mellat", refId, saleReferenceId.ToString()); } return result; }