using Jd.ACES;
using Jd.Api;
using Jd.Api.Request;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;

namespace BBWY.Test
{
    internal class Program
    {
        private static IJdClient GetJdClient(string appKey, string appSecret)
        {
            return new DefaultJdClient("https://api.jd.com/routerjson", appKey, appSecret);
        }

        public static string Md5Encrypt(string originStr)
        {
            using (var md5 = MD5.Create())
            {
                return string.Join(string.Empty, md5.ComputeHash(Encoding.UTF8.GetBytes(originStr)).Select(x => x.ToString("x2")));
            }
        }

        static void Main(string[] args)
        {

            //var appkey = "E1AA9247D5583A6D87449CE6AB290185";
            //var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c";

            var appkey = "120EA9EC65AB017567D78CC1139EEEA5";
            var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";

            ////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛
            var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具
                                                                //var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2
                                                                //var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛
                                                                //var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇
                                                                //var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品
                                                                //var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具


            var qtAppId = "BBWY2023022001";
            var qtAppSecret = "908e131365d5448ca651ba20ed7ddefe";
            var url = "https://qt.qiyue666.com/api/platform/product/spu/208";
            var callTime = DateTime.Now.ToString("yyyyMMddHHmmss");
            var randomNum = new Random().Next(100000, 999999).ToString();
            var p = new object[] { };

            var jmStr = JsonConvert.SerializeObject(new QuanTanSignParam()
            {
                appId = qtAppId,
                appSecret = qtAppSecret,
                callTime = callTime,
                _params = JsonConvert.SerializeObject(p),
                randomNum = randomNum
            });
            var md5Str = Md5Encrypt(jmStr);
            var qtToken = $"{qtAppId}-{callTime}-{md5Str}-{randomNum}";

            var qtRequestParam = new QuanTanRequestParam()
            {
                Params = p,
                token = qtToken
            };
            using (var httpClient = new HttpClient())
            {
                using (var request = new HttpRequestMessage(HttpMethod.Post, url))
                {
                    request.Content = new StringContent(JsonConvert.SerializeObject(qtRequestParam), Encoding.UTF8, "application/json");

                    using (var response = httpClient.SendAsync(request).Result)
                    {
                        var result = response.Content.ReadAsStringAsync().Result;
                        Console.WriteLine(result);
                    }
                }
            }

            Console.ReadKey();
        }
    }
}