diff --git a/BBWY.Test/JDDongDongAPITest.cs b/BBWY.Test/JDDongDongAPITest.cs index de1270fa..0e0bbe56 100644 --- a/BBWY.Test/JDDongDongAPITest.cs +++ b/BBWY.Test/JDDongDongAPITest.cs @@ -30,7 +30,7 @@ namespace BBWY.Test Level = j.Value("level"), Name = j.Value("waiter") }).ToList(); - + Console.WriteLine(JsonConvert.SerializeObject(list)); } } diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index e32c03c0..1315d04d 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -6,6 +6,9 @@ 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 { @@ -16,8 +19,17 @@ namespace BBWY.Test 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"; @@ -35,9 +47,41 @@ namespace BBWY.Test var qtAppId = "BBWY2023022001"; var qtAppSecret = "908e131365d5448ca651ba20ed7ddefe"; - var spu = 208; - var callTime = DateTime.Now.ToString("yyyyMMddHHmmss"); - var _params = JsonConvert.SerializeObject(new object[] { }); + 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(); } } diff --git a/BBWY.Test/QuanTanBaseParam.cs b/BBWY.Test/QuanTanBaseParam.cs new file mode 100644 index 00000000..7d67661b --- /dev/null +++ b/BBWY.Test/QuanTanBaseParam.cs @@ -0,0 +1,25 @@ +using Newtonsoft.Json; + +namespace BBWY.Test +{ + public class QuanTanSignParam + { + public string appId { get; set; } + public string appSecret { get; set; } + + public string callTime { get; set; } + + [JsonProperty(PropertyName = "params")] + public object _params { get; set; } + + public string randomNum { get; set; } + } + + public class QuanTanRequestParam + { + [JsonProperty(PropertyName = "params")] + public object Params { get; set; } + + public string token { get; set; } + } +}