須要的方法:c#
/// <summary>
/// 將c# DateTime時間格式轉換爲Unix時間戳格式
/// </summary>
/// <param name="time">時間</param>
/// <returns>double</returns>
public static double ConvertDateTimeToTimeStamp()
{
double intResult = 0;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
intResult = (DateTime.Now - startTime).TotalSeconds;
return intResult;
}加密
/// <summary>
/// 毫秒時間戳
/// </summary>
/// <returns></returns>
public static double TimeSpanByTotalMilliseconds()
{
return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
}spa
傳入參數 :{"TimeStampRange":"時間戳","sign":"簽名"} 協商的固定參數:SignKey:密鑰string
string plan=thirdLogin.Unionid + thirdLogin.TimeStampRange.ToString() + SignKey;io
if (EncrypHelper.GetMD5(plan) != thirdLogin.Sign || (Math.Abs(TimeHelper.TimeSpanByTotalMilliseconds() - thirdLogin.TimeStampRange) > 300000)){}rsa
1.將用戶標識列,時間戳和密鑰拼接的字段進行MD5加密,判斷傳入的sign是否正確nio
2.判斷傳入的時間戳是否超過了10分鐘,精確到毫秒。方法
註釋:Math.Abs獲取其絕對值im