using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Common.APIEnum; using WIDESEA_Core.Helper; using WIDESEA_DTO.PLS; using WIDESEA_External.IPLSService; using WIDESEA_External.Model; using WIDESEA_IBasicRepository; using WIDESEA_Model.Models; namespace WIDESEA_External.PLSService { public class InvokePLSService : IInvokePLSService { private readonly IApiInfoRepository _apiInfoRepository; public InvokePLSService(IApiInfoRepository apiInfoRepository) { _apiInfoRepository = apiInfoRepository; } JsonSerializerSettings settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; /// /// 获取MO票 /// /// /// public string InvokeMoInboundStatuApi(ReturnMoInboundStatuModel moInboundStatuModel) { Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokePLSApi.ToString()); string appId = AppSettings.Get("LocalAppId"); string appSecret = AppSettings.Get("LocalAppSecret"); var requestModel = new { Data = moInboundStatuModel, TimeStamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), AppId = appId }; string paramStr = MD5Util.GetParamStr(requestModel); string sign = MD5Util.GetMD5_32(paramStr + appSecret); var finalRequest = new { requestModel.Data, requestModel.TimeStamp, requestModel.AppId, Sign = sign }; string requestJson = JsonConvert.SerializeObject(finalRequest, settings); string response = HttpHelper.Post(apiInfo.ApiAddress, requestJson); return response; } } }