1.生成时间戳
private static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalSeconds).ToString();
}
2.由时间戳生成格林威标准时间
private static DateTime GetTimeSpan(long number = 1466047027)
{
DateTime orderTime = new DateTime(1970, 1, 1, 0, 0, 0,0).AddSeconds(number);
return orderTime;
}
3.时间戳的作用
①根据时间戳时间唯一性和多位随机数一起组成相应的订单号
public string GenerateOrderNumber()
{
Random random = new Random();
var timeStamp = GetTimeStamp();
var orderNumber = "N" + timeStamp + random.Next(1000, 10000).ToString();
return orderNumber;
}
②根据时间戳的时效性可以验证请求的有效性
private static bool IsValidity()
{
TimeSpan ts = DateTime.UtcNow - GetTimeSpan();
if (ts.TotalSeconds > 120)
return falase;
else
return true;
}