using BBWYB.Common.Http; using Newtonsoft.Json; using QuanTan.SDK.Extensions; using QuanTan.SDK.Model; namespace QuanTan.SDK.Client { public class BaseClient { protected RestApiService restApiService; protected readonly string host = "https://qt.qiyue666.com/"; public BaseClient(RestApiService restApiService) { this.restApiService = restApiService; } public QuanTanResponse SendRequest(string apiPath, object param, string appId, string appSecret) { var callTime = DateTime.Now.ToString("yyyyMMddHHmmss"); var randomNum = new Random(Guid.NewGuid().GetHashCode()).Next(100000, 999999).ToString(); if (param == null) param = new object[] { }; var paramStr = JsonConvert.SerializeObject(param); var jmStr = JsonConvert.SerializeObject(new QuanTanSignParam() { appId = appId, appSecret = appSecret, callTime = callTime, _params = paramStr, randomNum = randomNum }); var md5Str = jmStr.Md5Encrypt(); var qtToken = $"{appId}-{callTime}-{md5Str}-{randomNum}"; var requestParam = new QuanTanRequestParam() { Params = paramStr, token = qtToken }; try { var restApiResult = restApiService.SendRequest(host, apiPath, requestParam, null, HttpMethod.Post); if (restApiResult.StatusCode != System.Net.HttpStatusCode.OK) throw new Exception(restApiResult.Content); return JsonConvert.DeserializeObject>(restApiResult.Content); } catch (Exception ex) { return new QuanTanResponse() { Status = 0, Message = ex.Message }; } } } }