30 lines
809 B
C#
30 lines
809 B
C#
|
|
using System;
|
||
|
|
using System.Threading.Tasks;
|
||
|
|
using Hncore.Infrastructure.Extension;
|
||
|
|
using Newtonsoft.Json;
|
||
|
|
using Newtonsoft.Json.Serialization;
|
||
|
|
|
||
|
|
namespace Hncore.Infrastructure.OpenApi
|
||
|
|
{
|
||
|
|
public class OpenApiRequestBase
|
||
|
|
{
|
||
|
|
[JsonProperty("appid")]
|
||
|
|
public string AppId { get; set; }
|
||
|
|
|
||
|
|
[JsonProperty("timestamp")]
|
||
|
|
public long? Timestamp { get; set; }
|
||
|
|
|
||
|
|
[JsonProperty("sign")]
|
||
|
|
public string Sign { get; set; }
|
||
|
|
|
||
|
|
public void CheckSign(string key)
|
||
|
|
{
|
||
|
|
var sign = OpenApiSignUtil.CreateSign(this.Timestamp.ToLong(), key);
|
||
|
|
|
||
|
|
if (!String.Equals(sign, Sign, StringComparison.CurrentCultureIgnoreCase))
|
||
|
|
{
|
||
|
|
OpenApiException.Throw(OpenApiReturnCode.SignError);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|