2025-03-27 15:05:14 +08:00

73 lines
2.3 KiB
C#

using System;
using Newtonsoft.Json;
namespace GSYWApi.Helper
{
/// <summary>
/// 公共方法
/// </summary>
public class Common
{
/// <summary>
/// 判断是否是偶数
/// </summary>
/// <param name="n"></param>
/// <returns></returns>
public static bool IsOdd(int n)
{
return Convert.ToBoolean(n % 2 == 0);
}
/// <summary>
///
/// </summary>
/// <param name="code"></param>
/// <param name="msg"></param>
/// <param name="data"></param>
/// <returns></returns>
public static object ReturnJson(int code, string msg, object data = null)
{
Models.Result result = new Models.Result();
result.Result_Data = data;
result.Result_Code = code;
result.Result_Desc = msg;
return result;
}
/// <summary>
/// 创建登录秘钥
/// </summary>
/// <param name="UserID">session_key是微信服务器生成的针对用户数据加密的秘钥</param>
/// <param name="UserName"></param>
/// <param name="LoggingTime"></param>
/// <returns>返回加密串</returns>
public static string CreateAccessToken(int? UserID, string UserName, DateTime? LoggingTime)
{
Model.AccessToken accessToken = new Model.AccessToken();
accessToken.UserID = UserID;
accessToken.UserName = UserName;
accessToken.LoggingTime = LoggingTime == null ? DateTime.Now : LoggingTime.Value;
return JsonConvert.SerializeObject(accessToken).ToEncrypt();
}
/// <summary>
/// 验证加密串中的LoggingTime是否过期
/// </summary>
/// <param name="accessToken">第一次登录生成的加密串</param>
/// <returns></returns>
public static bool CheckSession(string accessToken)
{
Model.AccessToken accessTokenModel = JsonConvert.DeserializeObject<Model.AccessToken>(accessToken.ToDecrypt());
TimeSpan ts = DateTime.Now - accessTokenModel.LoggingTime.Value;
int validSecond = 2 * 60 * 60;//设置2小时过期
if (ts.TotalSeconds >= validSecond)
{
return false;
}
return true;
}
}
}