/// <summary> /// Get data FromMySQL where Payment Pending /// </summary> /// <param name="ConString"></param> public static void GetdataFromMySQL(string ConString) { int ID = 0; int TenantId = 0; string InvoiceNo = string.Empty; string Date = string.Empty; string CustomerName = string.Empty; string MobileNumber = string.Empty; string TokenId = string.Empty; string Alias = string.Empty; string StoreCode = string.Empty; string CompanayName = string.Empty; string apiResponse = string.Empty; string apitokenRes = string.Empty; string ShippingAddress = string.Empty; string PinCode = string.Empty; string City = string.Empty; string State = string.Empty; string Country = string.Empty; string DeliveryType = string.Empty; PaymentStatusResponse paymentapiResponse = new PaymentStatusResponse(); MySqlConnection con = null; try { DataTable dt = new DataTable(); IConfiguration config = new ConfigurationBuilder().AddJsonFile("appsettings.json", true, true).Build(); string ClientAPIURL = config.GetSection("MySettings").GetSection("ClientAPIURL").Value; string clientAPIUrlForGenerateToken = config.GetSection("MySettings").GetSection("clientAPIUrlForGenerateToken").Value; string TerminalId = config.GetSection("MySettings").GetSection("TerminalId").Value; string Client_Id = config.GetSection("MySettings").GetSection("Client_Id").Value; string Client_Secret = config.GetSection("MySettings").GetSection("Client_Secret").Value; string Grant_Type = config.GetSection("MySettings").GetSection("Grant_Type").Value; string Scope = config.GetSection("MySettings").GetSection("Scope").Value; con = new MySqlConnection(ConString); MySqlCommand cmd = new MySqlCommand("SP_PHYGetPaymentDetails", con) { CommandType = System.Data.CommandType.StoredProcedure }; cmd.Connection.Open(); MySqlDataAdapter da = new MySqlDataAdapter(cmd); da.Fill(dt); cmd.Connection.Close(); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; ID = Convert.ToInt32(dr["ID"]); TenantId = Convert.ToInt32(dr["TenantId"]); InvoiceNo = Convert.ToString(dr["InvoiceNo"]); Date = Convert.ToDateTime(dr["Date"]).ToString("yyyy-MM-dd HH:mm:ss"); CustomerName = Convert.ToString(dr["CustomerName"]); MobileNumber = Convert.ToString(dr["MobileNumber"]); TokenId = Convert.ToString(dr["TokenId"]); Alias = Convert.ToString(dr["Alias"]); StoreCode = Convert.ToString(dr["StoreCode"]); CompanayName = Convert.ToString(dr["ProgramCode"]); ShippingAddress = Convert.ToString(dr["ShippingAddress"]); PinCode = Convert.ToString(dr["PinCode"]); City = Convert.ToString(dr["City"]); State = Convert.ToString(dr["State"]); Country = Convert.ToString(dr["Country"]); DeliveryType = Convert.ToString(dr["DeliveryType"]); var dtOffset = DateTimeOffset.Parse(Date, CultureInfo.InvariantCulture); string apiReq = "Client_Id=" + Client_Id + "&Client_Secret=" + Client_Secret + "&Grant_Type=" + Grant_Type + "&Scope=" + Scope; apitokenRes = CommonService.SendApiRequestToken(clientAPIUrlForGenerateToken + "connect/token", apiReq); HSResponseGenerateToken hSResponseGenerateToken = new HSResponseGenerateToken(); hSResponseGenerateToken = JsonConvert.DeserializeObject <HSResponseGenerateToken>(apitokenRes); PaymentStatusRequest paymentStatus = new PaymentStatusRequest { tokenId = TokenId, programCode = CompanayName, storeCode = StoreCode, //billDateTime = dtOffset.ToString("yyyy-MM-dd'T'HH:mm:ss.249'Z'"), billDateTime = dtOffset.ToString("dd-MMM-yyyy hh:mm:ss"), terminalId = TerminalId, merchantTxnID = InvoiceNo, mobile = MobileNumber.TrimStart('0') }; string apiReqpayment = JsonConvert.SerializeObject(paymentStatus); if (!string.IsNullOrEmpty(hSResponseGenerateToken.access_token)) { apiResponse = CommonService.SendApiRequest(ClientAPIURL + "/api/GetPaymentStatus", apiReqpayment, hSResponseGenerateToken.access_token); paymentapiResponse = JsonConvert.DeserializeObject <PaymentStatusResponse>(apiResponse); } if (paymentapiResponse.returnCode == "0" && paymentapiResponse.tokenStatus.Contains("Success")) { if (ShippingAddress != "" && PinCode != "" && City != "" && State != "" && Country != "" && DeliveryType != "Pickup") { UpdateResponse(ID, /*paymentapiResponse.status*/ "PaymentDetails", ConString); } else { UpdatePaymentResponse(ID, /*paymentapiResponse.status*/ "PaymentDetails", DeliveryType, ConString); } //CommonService.SmsWhatsUpDataSend(TenantId, 0, CompanayName, ID, ClientAPIURL, "PaymentStatus", ConString, hSResponseGenerateToken.access_token); } else { ExLogger(ID, InvoiceNo, Date, StoreCode, paymentapiResponse.returnMessage, paymentapiResponse.tokenStatus, ConString); } } } } catch (Exception ex) { ExLogger(ID, InvoiceNo, Date, StoreCode, ex.Message, ex.StackTrace, ConString); } finally { if (con != null) { con.Close(); } GC.Collect(); } }
/// <summary> ///Generate Link /// </summary> /// <param name="sentPaymentLink"></param> /// <param name="clientAPIUrlForGenerateToken"></param> /// <param name="clientAPIUrlForGeneratePaymentLink"></param> /// <param name="TenantID"></param> /// <param name="UserID"></param> /// <param name="programCode"></param> /// <returns></returns> public int GenerateLink(SentPaymentLink sentPaymentLink, string clientAPIUrlForGenerateToken, string clientAPIUrlForGeneratePaymentLink, int tenantID, int userID, string programCode) { int result = 0; string apiReq1 = ""; string URLGeneratePaymentLink = ""; DataSet ds = new DataSet(); HSRequestResendPaymentLink hSRequestResendPaymentLink = null; HSRequestGeneratePaymentLink hSRequestGeneratePaymentLink = null; try { if (conn != null && conn.State == ConnectionState.Closed) { conn.Open(); } MySqlCommand cmd = new MySqlCommand("SP_PHYGetOrderDetailForPaymentLink", conn) { Connection = conn, CommandType = CommandType.StoredProcedure }; cmd.Parameters.AddWithValue("@Invoice_Number", sentPaymentLink.InvoiceNumber); cmd.Parameters.AddWithValue("@tenant_ID", tenantID); cmd.Parameters.AddWithValue("@user_ID", userID); MySqlDataAdapter da = new MySqlDataAdapter { SelectCommand = cmd }; da.Fill(ds); if (ds != null && ds.Tables[0] != null) { hSRequestGeneratePaymentLink = new HSRequestGeneratePaymentLink { merchantTxnID = ds.Tables[0].Rows[0]["InvoiceNo"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["InvoiceNo"]), billDateTime = ds.Tables[0].Rows[0]["billDateTime"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["billDateTime"]), terminalId = ds.Tables[0].Rows[0]["TerminalId"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["TerminalId"]), name = ds.Tables[0].Rows[0]["CustomerName"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["CustomerName"]), email = ds.Tables[0].Rows[0]["EmailID"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["EmailID"]), mobile = ds.Tables[0].Rows[0]["MobileNumber"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["MobileNumber"]), amount = ds.Tables[0].Rows[0]["Amount"] == DBNull.Value ? 0 : Convert.ToDecimal(ds.Tables[0].Rows[0]["Amount"]) }; } hSRequestGeneratePaymentLink.programCode = programCode; hSRequestGeneratePaymentLink.storeCode = sentPaymentLink.StoreCode; DateTime dateTime_billdatetime = Convert.ToDateTime(hSRequestGeneratePaymentLink.billDateTime); var settings = new JsonSerializerSettings { DateFormatString = "yyyy-MM-ddTHH:mm:ss.fffZ" }; var json = JsonConvert.SerializeObject(dateTime_billdatetime, settings); var newdate = JsonConvert.DeserializeObject <string>(json); hSRequestGeneratePaymentLink.billDateTime = newdate; HSResponseGeneratePaymentLink responseGeneratePaymentLink = new HSResponseGeneratePaymentLink(); HSRequestGenerateToken hSRequestGenerateToken = new HSRequestGenerateToken(); string apiReq = JsonConvert.SerializeObject(hSRequestGenerateToken); apiResponse = CommonService.SendApiRequestToken(clientAPIUrlForGenerateToken + "connect/token", apiReq); HSResponseGenerateToken hSResponseGenerateToken = new HSResponseGenerateToken(); hSResponseGenerateToken = JsonConvert.DeserializeObject <HSResponseGenerateToken>(apiResponse); if (!string.IsNullOrEmpty(hSResponseGenerateToken.access_Token)) { if (sentPaymentLink.SentPaymentLinkCount > 0) { hSRequestResendPaymentLink = new HSRequestResendPaymentLink { programCode = programCode, tokenId = hSResponseGenerateToken.access_Token, storeCode = sentPaymentLink.StoreCode, billDateTime = hSRequestGeneratePaymentLink.billDateTime, terminalId = hSRequestGeneratePaymentLink.terminalId, merchantTxnID = hSRequestGeneratePaymentLink.merchantTxnID, mobile = hSRequestGeneratePaymentLink.mobile, reason = "ABCD" }; apiReq1 = JsonConvert.SerializeObject(hSRequestResendPaymentLink); URLGeneratePaymentLink = clientAPIUrlForGeneratePaymentLink + "api/ResendPaymentLink"; } else { apiReq1 = JsonConvert.SerializeObject(hSRequestGeneratePaymentLink); URLGeneratePaymentLink = clientAPIUrlForGeneratePaymentLink + "api/GeneratePaymentLink"; } apiResponse1 = CommonService.SendApiRequestMerchantApi(URLGeneratePaymentLink, apiReq1, hSResponseGenerateToken.access_Token); responseGeneratePaymentLink = JsonConvert.DeserializeObject <HSResponseGeneratePaymentLink>(apiResponse1); } if (responseGeneratePaymentLink.returnMessage == "Success") { if (conn != null && conn.State == ConnectionState.Closed) { conn.Open(); } MySqlCommand cmd1 = new MySqlCommand("SP_PHYUpdateOrderDetailForPaymentLink", conn) { Connection = conn, CommandType = CommandType.StoredProcedure }; cmd1.Parameters.AddWithValue("@Invoice_Number", sentPaymentLink.InvoiceNumber); cmd1.Parameters.AddWithValue("@access_Token", hSResponseGenerateToken.access_Token); cmd1.Parameters.AddWithValue("@tenant_ID", tenantID); cmd1.Parameters.AddWithValue("@user_ID", userID); cmd1.CommandType = CommandType.StoredProcedure; result = Convert.ToInt32(cmd1.ExecuteNonQuery()); conn.Close(); } } catch (Exception) { throw; } finally { if (conn != null) { conn.Close(); } } return(result); }