/// <summary> /// 根据clientid取appSignKey /// </summary> /// <param name="param"></param> /// <param name="request"></param> /// <param name="clientid"></param> /// <returns></returns> public static string GetNewSignature(string param, HttpRequestBase request, string clientId, ISignCheckService signCheckService) { param = param + ",appId,timestamp,nonce"; Dictionary <string, string> dict = new Dictionary <string, string>(); var _params = param.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var a in _params) { if (a == "url") { dict.Add(a, request[a].Split(',')[0]); } else if (a == "appId" && request[a] == null) { string routeDataAppid = request.RequestContext.RouteData.Values["appid"].ToString(); dict.Add(a, routeDataAppid); } else { dict.Add(a, request[a]); } } //string appid = dict["appId"]; var app = signCheckService.Repository.Entities.Where(x => x.ClientId == clientId).FirstOrDefault(); string appid = app.Appid; var appSignKey = app.AppSignKey; if (string.IsNullOrEmpty(appSignKey)) { throw new ArgumentException(@"clientid 不正确!", appSignKey); } //dict.Add("appId", appid); dict.Add("appSignKey", appSignKey); //string appSignKey = CommonService.GetSysConfig(appid, "iMih0xabKQdw8CBbkTM5Ley84WhN4oL6u5lbDui6G9tUlQo7fJE1CcktZ2UiETnU1FZ0R3ZvzYLKOzmaziyms5QuMia8czkEwFv2TQUg4G45Ha0aHPEHXnhjVqUPnKPJ"); // string appSignKey = WeChatCommonService.GetWeChatConfig(Convert.ToInt32(appid))?.AppSignKey; return(ApiCommon.GetSignature(dict, request.Params)); }
public static bool CompareSignature(string param, HttpRequestBase request) { param = param + ",appId,timestamp,nonce"; Dictionary <string, string> dict = new Dictionary <string, string>(); var _params = param.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var a in _params) { if (a == "url") { dict.Add(a, request[a].Split(',')[0]); } else { dict.Add(a, request[a]); } } string appid = dict["appId"]; string appSignKey = CommonService.GetSysConfig(appid, "iMih0xabKQdw8CBbkTM5Ley84WhN4oL6u5lbDui6G9tUlQo7fJE1CcktZ2UiETnU1FZ0R3ZvzYLKOzmaziyms5QuMia8czkEwFv2TQUg4G45Ha0aHPEHXnhjVqUPnKPJ"); dict.Add("appSignKey", appSignKey); var sign = ApiCommon.GetSignature(dict, request.Params); if (request["sign"] == null) { Logger.Error("sign error!this: {0} \r\n Remote:{1}", sign, "null"); return(false); } else if (request["sign"].ToLower(CultureInfo.InvariantCulture) != sign) { Logger.Error("sign error!this: {0} \r\n Remote:{1}", sign, request["sign"].ToLower(CultureInfo.InvariantCulture)); return(false); } else { Logger.Info("sign success!"); return(true); } }