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()
|
};
|
|
/// <summary>
|
/// 获取MO票
|
/// </summary>
|
/// <param name="moInboundStatuModel"></param>
|
/// <returns></returns>
|
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;
|
}
|
}
|
}
|