Ejemplo n.º 1
0
        /// <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();
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }