69 lines
2.5 KiB
C#
69 lines
2.5 KiB
C#
using HZQR.Common;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace EShang.Common
|
|
{
|
|
public class MiniProgram
|
|
{
|
|
/// <summary>
|
|
/// session_key和openId不应该传输到客户端 ,加密处理
|
|
/// </summary>
|
|
/// <param name="session_key">session_key是微信服务器生成的针对用户数据加密的秘钥</param>
|
|
/// <param name="openid"></param>
|
|
/// <returns>返回加密串</returns>
|
|
public static string CreateMiniProToken(string session_key, string openid)
|
|
{
|
|
var jo = new JObject();
|
|
jo["session_key"] = session_key;
|
|
jo["openid"] = openid;
|
|
jo["datetime"] = DateTime.Now;
|
|
return jo.ToEncrypt();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 验证加密串中的session_key是否过期
|
|
/// </summary>
|
|
/// <param name="wechatMiniproToken">第一次登录生成的加密串</param>
|
|
/// <returns></returns>
|
|
public static Result CheckSessionKey(string wechatMiniproToken)
|
|
{
|
|
Result result = new Result();
|
|
JObject tokenObj = (JObject)JsonConvert.DeserializeObject(wechatMiniproToken.ToDecrypt());
|
|
DateTime startTime = Convert.ToDateTime(tokenObj["datetime"]);//生成加密串的时间
|
|
DateTime endTime = DateTime.Now;//当前时间
|
|
TimeSpan ts = endTime - startTime;
|
|
int validSecond = 2 * 60 * 60;//设置2小时过期
|
|
if (ts.TotalSeconds >= validSecond)
|
|
{
|
|
result.Result_Code = 200;
|
|
result.Result_Desc = "session已过期";
|
|
return result;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public static bool CheckSession(DateTime sessionAddTime)
|
|
{
|
|
bool isValid = true;//是否有效
|
|
DateTime startTime = sessionAddTime;
|
|
DateTime endTime = DateTime.Now;
|
|
TimeSpan ts = endTime - startTime;
|
|
int validSecond = 2 * 60 * 60;//设置2小时过期
|
|
//int validSecond = 5 * 60;
|
|
if (ts.TotalSeconds >= validSecond)
|
|
{
|
|
isValid = false;
|
|
LogUtil.WriteLog(null, "CheckSession,session已过期", DateTime.Now.ToString("yyyyMMdd_") + "WeChatLog");
|
|
return isValid;
|
|
}
|
|
return isValid;
|
|
}
|
|
}
|
|
}
|