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;
}
}
}