/// <summary> /// 验证签名。默认公众号不需要参数。传入authorizer_appid(授权方appid)、authorizer_refresh_token(授权方的刷新令牌)则验证该公众号(用于微信开放平台)、component_verify_ticket(微信后台推送的ticket,此ticket会定时推送) /// </summary> public bool Check(WeChatParam param = null) { string token; if (param != null && !string.IsNullOrWhiteSpace(param.AuthorizerAppid)) { if (string.IsNullOrWhiteSpace(param.AuthorizerRefreshToken)) { LogHelper.Debug("参数错误!authorizer_refresh_token必传!", "微信CallBack_"); return(false); } var bs = TokenHelper.GetAuthorizerAccessToken(new WeChatParam() { AuthorizerAppid = param.AuthorizerAppid, AuthorizerRefreshToken = param.AuthorizerRefreshToken, ComponentVerifyTicket = param.ComponentVerifyTicket }); if (!bs.IsSuccess) { return(false); } token = bs.AuthorizerAccessToken; } else { token = WeChatConfig.GetToken(); } var vs = new[] { timestamp, nonce, token }.OrderBy(s => s); var str = string.Join("", vs); var copu = FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1"); if (copu == null) { return(false); } return(copu.Equals(signature, StringComparison.CurrentCultureIgnoreCase)); }