Esempio n. 1
0
        public static async Task HeartBeat(string cardCode)
        {
            try
            {
                var time     = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                var signData = cardCode + time + _Key;
                var sign     = Sign.Compute(signData).ToUpper();
                var baseUri  = BankCardConfiguration.GetAppSettings("UAAPIUrl") + $"hydra/api/card_online_heart_beat/?code={cardCode}&time={HttpUtility.UrlEncode(time)}&sign={sign}";

                using (var client = new HttpClient())
                {
                    Task <HttpResponseMessage> response = client.GetAsync(new Uri(baseUri));
                    response.Wait();

                    var responseJson = await response.Result.Content.ReadAsStringAsync();

                    if (response.Result.IsSuccessStatusCode)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        public static async Task CollectionHistory(string cardCode, decimal balance, List <TransactionRecord> transactions, List <TempTransRecord> tempBankRecord)
        {
            var baseUri = BankCardConfiguration.GetAppSettings("UAAPIUrl") + $"hydra/api/upload_bankcard_new_record/";

            try
            {
                var transactionsFiltered = transactions.Distinct(new TransactionRecordEqualityComparer()).ToList();

                if (transactionsFiltered.Count == 0)
                {
                    return;
                }

                using (var client = new HttpClient())
                {
                    transactionsFiltered = CompareGetOrderID(transactionsFiltered, tempBankRecord, balance);

                    var balanceFormat = balance.ToString("#,##0.00");
                    var time          = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    var signData      = balanceFormat + cardCode + time + _Key;

                    var sign = Sign.Compute(signData);

                    Transaction transaction = new Transaction
                    {
                        code    = cardCode,
                        balance = balanceFormat,
                        time    = time,
                        sign    = sign.ToUpper(),
                        records = transactionsFiltered
                    };

                    var jsonString = JsonConvert.SerializeObject(transaction);
                    var content    = new StringContent(jsonString, Encoding.UTF8, "application/json");
                    Task <HttpResponseMessage> response = client.PostAsync(baseUri, content);
                    response.Wait();

                    var responseJson = await response.Result.Content.ReadAsStringAsync();

                    if (response.Result.IsSuccessStatusCode)
                    {
                    }
                    else
                    {
                        throw new Exception(responseJson);
                    }
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.ToString());
                throw ex;
            }
        }
Esempio n. 3
0
        public static async Task <DateTime> GetLatestDate(string cardCode)
        {
            var      baseUri = BankCardConfiguration.GetAppSettings("UAAPIUrl") + $"hydra/api/get_last_trans_info?code={cardCode}";
            DateTime?result  = null;

            try
            {
                var forcedDateFilename = "ForcedDate";
                if (File.Exists(forcedDateFilename))
                {
                    var      forcedDatedata = File.ReadAllText(forcedDateFilename).Trim();
                    DateTime forceDate;
                    if (DateTime.TryParse(forcedDatedata, out forceDate))
                    {
                        return(forceDate);
                    }
                }

                using (var client = new HttpClient())
                {
                    Task <HttpResponseMessage> response = client.GetAsync(new Uri(baseUri));
                    response.Wait();

                    var responseJson = await response.Result.Content.ReadAsStringAsync();

                    if (response.Result.IsSuccessStatusCode)
                    {
                        UAHyDraResult <LastTransactionDateDetails> jsonCard = null;

                        jsonCard = JsonConvert.DeserializeObject <UAHyDraResult <LastTransactionDateDetails> >(responseJson);

                        if (jsonCard != null && jsonCard.Status == 0)
                        {
                            result = jsonCard.Data.transaction_time;
                        }
                        else
                        {
                            System.Windows.Forms.MessageBox.Show(jsonCard.Msg);
                            result = null;
                        }
                    }
                    else
                    {
                        result = null;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            if (result == null)
            {
                // Get Last 7 Days
                int defaultQueryCollectionDays = int.Parse(BankCardConfiguration.GetAppSettings("DefaultQueryCollectionDays"));
                result = DateTime.Now.AddDays(defaultQueryCollectionDays);
            }

            return((DateTime)result);
        }
Esempio n. 4
0
        public static async Task <Card> GetCard(string cardCode)
        {
            var baseUri = BankCardConfiguration.GetAppSettings("UAAPIUrl") + $"hydra/api/get_bankcard_info?code={cardCode}";

            try
            {
                using (var client = new HttpClient())
                {
                    Task <HttpResponseMessage> response = client.GetAsync(new Uri(baseUri));
                    response.Wait();

                    var responseJson = await response.Result.Content.ReadAsStringAsync();

                    if (response.Result.IsSuccessStatusCode)
                    {
                        UAHyDraResult <Card> jsonCard = null;

                        jsonCard = JsonConvert.DeserializeObject <UAHyDraResult <Card> >(responseJson);

                        if (jsonCard != null && jsonCard.Status == 0)
                        {
                            jsonCard.Data.AccountNumber = Models.Encryption.Encryption.Decrypt(jsonCard.Data.AccountNumber);

                            if (!String.IsNullOrEmpty(jsonCard.Data.LoginUsername))
                            {
                                jsonCard.Data.LoginUsername = Models.Encryption.Encryption.Decrypt(jsonCard.Data.LoginUsername);
                            }

                            if (!String.IsNullOrEmpty(jsonCard.Data.LoginPassword))
                            {
                                jsonCard.Data.LoginPassword = Models.Encryption.Encryption.Decrypt(jsonCard.Data.LoginPassword);
                            }

                            if (!String.IsNullOrEmpty(jsonCard.Data.PayPassword))
                            {
                                jsonCard.Data.PayPassword = Models.Encryption.Encryption.Decrypt(jsonCard.Data.PayPassword);
                            }

                            if (!String.IsNullOrEmpty(jsonCard.Data.UkeyPassword))
                            {
                                jsonCard.Data.UkeyPassword = Models.Encryption.Encryption.Decrypt(jsonCard.Data.UkeyPassword);
                            }

                            return(jsonCard.Data);
                        }
                        else
                        {
                            System.Windows.Forms.MessageBox.Show(jsonCard.Msg);
                            return(null);
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }