public PaymentConnectResponse Connect(long invoiceId, long amount, string callback) { var result = new PaymentConnectResponse() { GatewayUrl = GatewayURL, Status = PaymentStatus.Unkonwn, Provider = PaymentProvider.Mellat, Parameters = new Dictionary<string, string>() }; try { BypassCertificateError(); WebUI.MellatBank.PaymentGatewayImplService pg = new WebUI.MellatBank.PaymentGatewayImplService(); //MellatBank.PaymentGatewayClient bp = new WebUI.MellatBank.PaymentGatewayClient(); var bankResult = pg.bpPayRequest(TerminalId, UserName, Password, Convert.ToInt64(invoiceId), amount, DefaultDate(), DefaultTime(), "", callback, 0).Split(','); result.Status = PaymentStatusFromString(bankResult[0]); if (result.Status == PaymentStatus.Success) { result.Parameters.Add("RefId", bankResult[1]); result.Parameters.Add("HTML", File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath(@"~\Services\Payment\connect.html")) .Replace("%Result%", JsonConvert.SerializeObject(result)) ); } else { result.Parameters.Add("Code", PaymentStatusToString(result.Status)); result.Parameters.Add("Description", result.Status.ToString()); result.Parameters.Add("HTML", File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath(@"~\Services\Payment\error.html")) .Replace("%Result%", JsonConvert.SerializeObject(result)) ); } } catch (Exception) { } return result; }
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; }