protected void _rptGrupos_ItemCommand(object source, RepeaterCommandEventArgs e) { try { if (e.CommandName == "Select") { // Carrega grupo selecionado na Session SYS_Grupo grupo = new SYS_Grupo { gru_id = new Guid(e.CommandArgument.ToString()) }; __SessionWEB.__UsuarioWEB.Grupo = SYS_GrupoBO.GetEntity(grupo); LoadSessionSistema(); // Realiza autenticação do usuário no Sistema Administrativo // SYS_UsuarioBO.AutenticarUsuario(__SessionWEB.__UsuarioWEB.Usuario, __SessionWEB.__UsuarioWEB.Grupo); SignHelper.AutenticarUsuario(__SessionWEB.__UsuarioWEB.Usuario, __SessionWEB.__UsuarioWEB.Grupo); ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, String.Format("Autenticação do usuário ( {0} ) com grupo ( {1} ) no sistema ( {2} ).", __SessionWEB.__UsuarioWEB.Usuario.usu_login, __SessionWEB.__UsuarioWEB.Grupo.gru_nome, __SessionWEB.TituloSistema)); Response.Redirect("~/Index.aspx", false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage("Não foi possível atender a solicitação.<br />Clique no botão voltar e tente novamente.", UtilBO.TipoMensagem.Erro); btnVoltar.Visible = true; } }
public static RShopDetails ShopDetailInfo(IHttpClientFactory httpFactory, string appPoiCodes) { var modelInfo = new SShopDetail { app_poi_codes = appPoiCodes }; modelInfo.sig = SignHelper.Sign <BaseSubmit>(modelInfo, MeiTAction.getShopDetail); var client = httpFactory.CreateClient(); try { var connectParams = ""; var commentParams = SignHelper.ToDictionary(modelInfo); if (commentParams != null) { foreach (var commentParam in commentParams) { connectParams += commentParam.Key + "=" + commentParam.Value + "&"; } } connectParams = connectParams.Substring(0, connectParams.Length - 1); var getUrl = MeiTAction.getShopDetail + "?" + connectParams; var response = client.GetAsync(getUrl).Result.Content.ReadAsStringAsync().Result; return(JsonConvert.DeserializeObject <RShopDetails>(response)); } catch (Exception ex) { return(null); } }
public RedPackInfo GetRedpackInfo(string appId, string mch_id, string mch_billno, string partnerkey, string weixincertpath, string weixincertpassword) { PayDictionary parameters = new PayDictionary(); parameters.Add("nonce_str", Utils.CreateNoncestr()); parameters.Add("mch_billno", mch_billno); parameters.Add("mch_id", mch_id); parameters.Add("appid", appId); parameters.Add("bill_type", "MCHT"); string str = SignHelper.SignPackage(parameters, partnerkey); parameters.Add("sign", str); string data = SignHelper.BuildXml(parameters, false); string message = ""; try { message = Send(weixincertpath, weixincertpassword, data, QueryRedPackUrl); } catch (Exception exception) { message = exception.Message; } if (!string.IsNullOrEmpty(message) && message.Contains("return_code")) { return(ConvertDic <RedPackInfo>(FromXml(message))); } return(new RedPackInfo { return_code = "FAIL", return_msg = message, status = "" }); }
/// <summary> /// 计算签名,只是返回,不自动加入字典 /// </summary> public static (string sign, string sign_data) GetSign(this Dictionary <string, string> param, string salt = null, string sign_req_key = "sign") { var sorted = SignHelper.FilterAndSort(param, sign_req_key, new MyStringComparer()); var sign = SignHelper.CreateSign(sorted, salt); return(sign.sign, sign.sign_data); }
private bool CheckSign(ActionExecutingContext context) { var signHeaders = GetSignHeaders(context); var app = _appCache.Get <App>($"app_{signHeaders.appid}"); if (app == null) { app = _appRepository.Get(signHeaders.appid); } if (app == null) { SetSignFail(context); return(false); } var rightSign = SignHelper.MakeApiSign(app.SecurityKey, signHeaders.time, signHeaders.requestid); var result = signHeaders.sign.Equals(rightSign, StringComparison.CurrentCultureIgnoreCase); if (!result) { _logger.LogWarning($"Check sign faild,IP:{context.HttpContext.Connection.RemoteIpAddress} App:{signHeaders.appid} RightSign:{rightSign} wrongSign:{signHeaders.sign}"); } return(result); }
public APIResult <List <ShippingOrder> > GetShippingOrders(string hospitalId, int pageIndex, int pageSize) { var interfaceConfig = WebRequest.GetRemoteInterface("shipping-orders"); if (interfaceConfig == null) { Logger.Debug("interfaceConfig null"); } else { Logger.Debug("shipping-orders=>{0}", JsonConvert.SerializeObject(interfaceConfig)); } Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("appId", interfaceConfig.AppID); dic.Add("appSecret", interfaceConfig.AppSecret); var signedParams = SignHelper.SignParams(dic); signedParams.Add("hospitalId", hospitalId); signedParams.Add("pageIndex", pageIndex.ToString()); signedParams.Add("pageSize", pageSize.ToString()); string res = WebRequest.PostToHttpService(interfaceConfig.URL, signedParams); var result = JsonConvert.DeserializeObject <APIResult <List <ShippingOrder> > >(res); return(result); }
internal string GetPrepay_id(PayDictionary dict, string sign) { dict.Add("sign", sign); string str = SignHelper.BuildQuery(dict, false); string postData = SignHelper.BuildXml(dict, false); string str3 = ""; str3 = PostData(prepay_id_Url, postData); try { DataTable table = new DataTable { TableName = "log" }; table.Columns.Add(new DataColumn("OperTime")); table.Columns.Add(new DataColumn("Info")); table.Columns.Add(new DataColumn("param")); table.Columns.Add(new DataColumn("query")); DataRow row = table.NewRow(); row["OperTime"] = DateTime.Now.ToString(); row["Info"] = str3; row["param"] = postData; row["query"] = str; table.Rows.Add(row); table.WriteXml(HttpContext.Current.Request.MapPath("/PrepayID.xml")); } catch (Exception exception) { writeLog(dict, sign, "", exception.Message + "-PrepayId获取错误"); } return(str3); }
public HttpResponseMessage SecureBySign([FromUri] int age, long _timestamp, string appKey, string _sign) { var result = new ResultModel <object>() { ReturnCode = 0, Message = string.Empty, Result = string.Empty }; #region 校验签名是否合法 var param = new SortedDictionary <string, string>(new AsciiComparer()); param.Add("age", age.ToString()); param.Add("appKey", appKey); param.Add("_timestamp", _timestamp.ToString()); string currentSign = SignHelper.GetSign(param, appKey); if (_sign != currentSign) { result.ReturnCode = -2; result.Message = "签名不合法"; return(GetHttpResponseMessage(result)); } #endregion var dataResult = stulist.Where(T => T.Age == age).ToList(); result.Result = dataResult; return(GetHttpResponseMessage(result)); }
internal string BuildPackage(PackageInfo package) { PayDictionary parameters = new PayDictionary(); parameters.Add("appid", this._payAccount.AppId); parameters.Add("mch_id", this._payAccount.PartnerId); parameters.Add("device_info", ""); parameters.Add("nonce_str", Utils.CreateNoncestr()); parameters.Add("body", package.Body); //附加信息wid parameters.Add("attach", wid); parameters.Add("out_trade_no", package.OutTradeNo); parameters.Add("total_fee", (int)package.TotalFee); parameters.Add("spbill_create_ip", package.SpbillCreateIp); parameters.Add("time_start", package.TimeExpire); parameters.Add("time_expire", ""); parameters.Add("goods_tag", package.GoodsTag); parameters.Add("notify_url", package.NotifyUrl); parameters.Add("trade_type", "JSAPI"); parameters.Add("openid", package.OpenId); parameters.Add("product_id", ""); string sign = SignHelper.SignPackage(parameters, this._payAccount.PartnerKey); writeLog(parameters, sign, "", ""); string str2 = this.GetPrepay_id(parameters, sign); if (str2.Length > 0x40) { str2 = ""; } return(string.Format("prepay_id=" + str2, new object[0])); }
/// <summary> /// 支付宝APP支付服务端 RSA加密 /// </summary> /// <returns></returns> public string Alipay() { string service = "mobile.securitypay.pay"; string partner = "2088511305329300"; string seller_id = "*****@*****.**"; string _input_charset = "utf-8"; string notify_url = "xxxxxxxxxxxxx"; string out_trade_no = "xxxxxxxxxx"; string subject = "xxxxxxxxxxxxx"; string payment_type = "1"; decimal total_fee = 0.01M; Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("service", service); dic.Add("partner", partner); dic.Add("_input_charset", _input_charset); dic.Add("notify_url", notify_url); dic.Add("out_trade_no", out_trade_no); dic.Add("subject", subject); dic.Add("payment_type", payment_type); dic.Add("seller_id", seller_id); dic.Add("total_fee", total_fee.ToString()); var privateKeyPem = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALHv4R4wuXRgFjAUxfy/Bf3MG5K7eQYf6wdAbAOcSHinYxaghZVi0hEU/m2tea8aGwhhZ9n+RMdHaVc3GOEXVbqxH+9eYCaqpeZTCQHEv1fPAxLI1zw3wosfuIbeZnbKzJrMJpuGPx6VIShLFQXatMNMVXIe6XR/yDNRODHeWa1xAgMBAAECgYAUPPJf2q7dO6iKY3J5Ysitqy9fqw8C0VKMCpm+d2IOxwsQIcXPzeOSqc6ebuKuNcvpUhrbwn3UJJ0onE2qHFtVpeC5zCilQ6DI1w+b8+IFgosm2wsCFiwWVkD6O4PWYDfC77NQCNG/7UZwmyUVEwBkWp5+z5ymwjRJP4Pt7iReuQJBAOie8R6tikK3sfPX33s20ipycuIwL49l7lwCx4XpINRbfR8kEGDnbt1qRmzyvmaL8eI0aHme/Nuf691i6eTANC8CQQDD0fzGp4DaS1RRKgY2GHG0M/w1/eah98LOT7qocKHcZ4dWHHKwPKqZeqWkg/Ij80N4dKaGd+0ReQGaiF6jurBfAkAShzZlXyU4EzGVXohqY/9xahREd9oR7eiCY6ZIwDzhLThWFqVHUqe98w0Q+HS57kOh5NK9fTBeveonhA1lLvn5AkEAoKDc6Bu479gBBz8grzkn9Dj8d1GZ4Vy6eMAgDlGuBH0MIA/f6D8rdhCMVcJCW0kOHH4bp4wydDW9ogShFU9rowJAHvuHqjpaQRGNoaij2H9ltSCjKhlK9sBcHBtx2T+/RWe21Lf0SfbSRbQH1dv+gd+xZFEi6mTmMRj0usyt+Rv/2A=="; var result = SignHelper.SignAlipayPay(dic, privateKeyPem); return(result); }
private bool ValidPaySign(PayNotify notify, out string servicesign) { PayDictionary payDictionary = new PayDictionary(); payDictionary.Add("appid", notify.appid); payDictionary.Add("bank_type", notify.bank_type); payDictionary.Add("cash_fee", notify.cash_fee); payDictionary.Add("fee_type", notify.fee_type); payDictionary.Add("is_subscribe", notify.is_subscribe); payDictionary.Add("mch_id", notify.mch_id); payDictionary.Add("nonce_str", notify.nonce_str); payDictionary.Add("openid", notify.openid); payDictionary.Add("out_trade_no", notify.out_trade_no); payDictionary.Add("result_code", notify.result_code); payDictionary.Add("return_code", notify.return_code); payDictionary.Add("sub_mch_id", notify.sub_mch_id); payDictionary.Add("time_end", notify.time_end); payDictionary.Add("total_fee", notify.total_fee); payDictionary.Add("trade_type", notify.trade_type); payDictionary.Add("transaction_id", notify.transaction_id); servicesign = SignHelper.SignPay(payDictionary, this._payAccount.PartnerKey); bool result = notify.sign == servicesign; servicesign = servicesign + "-" + SignHelper.BuildQuery(payDictionary, false); return(result); }
private void button4_Click(object sender, EventArgs e) { long timeStamp = DateTime.Now.Ticks; var paramDic = new SortedDictionary <string, string>(); paramDic.Add("pa", "palpsadapapa"); var headersDic = new SortedDictionary <string, string>(); headersDic.Add("e", "chenghe"); //username //param.Add("userpwd", "123"); headersDic.Add("t", "202cb962ac59075b964b07152d234b70"); //把secret加入进行加密 keysecret headersDic.Add("d", timeStamp.ToString()); // datatime _timestam var signDic = new SortedDictionary <string, string>(); signDic = headersDic; foreach (var item in paramDic) { signDic.Add(item.Key, item.Value); } //请求参数拼接 string sign = SignHelper.Sign(signDic, "123"); headersDic.Add("n", sign);//sign var newtets = new newtets(); newtets.name = "liahasd撒元"; newtets.age = 181; string test = JsonHelper.JSON.stringify(newtets); string responseString = HttpRequestHelper.HttpPost(url + "/GetDataByPostPa2", headersDic, test); MessageBox.Show(responseString); }
/// <summary> /// 获取单笔交易的详细信息 /// </summary> public static void GetTrade() { //202005213524461 TradeRequest request = new TradeRequest() { tid = "202005213524461" }; Dictionary <string, string> keyValuePairs = SignHelper.GetDictionary <TradeRequest>(request); keyValuePairs.Add("app_key", appKey); keyValuePairs.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") string sign = SignHelper.SignTopRequest(keyValuePairs, "md5", appSecret); string postUrl = url + WXAppConstants.tradeUrl; string param = string.Empty; foreach (var kv in keyValuePairs) { param += kv.Key + "=" + kv.Value + "&"; } param += "sign=" + sign; var result = HttpHelper.HttpGet(postUrl, param); try { var response = JsonConvert.DeserializeObject <TradeResponse>(result, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); } catch (Exception ex) { } }
public bool DeliverNotify(DeliverInfo deliver, string token) { PayDictionary parameters = new PayDictionary(); parameters.Add("appid", this._payAccount.AppId); parameters.Add("openid", deliver.OpenId); parameters.Add("transid", deliver.TransId); parameters.Add("out_trade_no", deliver.OutTradeNo); parameters.Add("deliver_timestamp", Utils.GetTimeSeconds(deliver.TimeStamp)); parameters.Add("deliver_status", deliver.Status ? 1 : 0); parameters.Add("deliver_msg", deliver.Message); deliver.AppId = this._payAccount.AppId; deliver.AppSignature = SignHelper.SignPay(parameters, ""); parameters.Add("app_signature", deliver.AppSignature); parameters.Add("sign_method", deliver.SignMethod); string data = JsonConvert.SerializeObject(parameters); string url = string.Format("{0}?access_token={1}", Deliver_Notify_Url, token); string str3 = new WebUtils().DoPost(url, data); if (!(!string.IsNullOrEmpty(str3) && str3.Contains("ok"))) { return(false); } return(true); }
public string SendRedpack(SendRedPackInfo sendredpack) { string str = string.Empty; PayDictionary parameters = new PayDictionary(); parameters.Add("nonce_str", Utils.CreateNoncestr()); if (sendredpack.SendRedpackRecordID > 0) { parameters.Add("mch_billno", sendredpack.Mch_Id + DateTime.Now.ToString("yyyymmdd") + sendredpack.SendRedpackRecordID.ToString().PadLeft(10, '0')); } else { parameters.Add("mch_billno", sendredpack.Mch_Id + DateTime.Now.ToString("yyyymmdd") + DateTime.Now.ToString("MMddHHmmss")); } parameters.Add("mch_id", sendredpack.Mch_Id); if (!string.IsNullOrEmpty(sendredpack.Sub_Mch_Id)) { parameters.Add("sub_mch_id", sendredpack.Sub_Mch_Id); } parameters.Add("wxappid", sendredpack.WXAppid); parameters.Add("nick_name", sendredpack.Nick_Name); parameters.Add("send_name", sendredpack.Send_Name); parameters.Add("re_openid", sendredpack.Re_Openid); parameters.Add("total_amount", sendredpack.Total_Amount); parameters.Add("min_value", sendredpack.Total_Amount);//sendredpack.Total_Amount parameters.Add("max_value", sendredpack.Total_Amount); parameters.Add("total_num", sendredpack.Total_Num); parameters.Add("wishing", sendredpack.Wishing); parameters.Add("client_ip", sendredpack.Client_IP); parameters.Add("act_name", sendredpack.Act_Name); parameters.Add("remark", sendredpack.Remark); string str2 = SignHelper.SignPackage(parameters, sendredpack.PartnerKey); parameters.Add("sign", str2); string data = SignHelper.BuildXml(parameters, false); string msg = Send(sendredpack.WeixinCertPath, sendredpack.WeixinCertPassword, data, SendRedPack_Url); writeLog(parameters, str2, SendRedPack_Url, msg); Match match_result_code = new Regex(@"<result_code><!\[CDATA\[(?<code>(.*))\]\]></result_code>").Match(msg); if (match_result_code.Success && match_result_code.Groups["code"].Value.Contains("SUCCESS")) { return("1"); } /* * if (!(string.IsNullOrEmpty(msg) || !msg.Contains("SUCCESS"))) * { * return "1"; * }*/ Match match = new Regex(@"<return_msg><!\[CDATA\[(?<code>(.*))\]\]></return_msg>").Match(msg); if (match.Success) { str = match.Groups["code"].Value; } WriteLog("5:" + str); return(str); }
public static int GetSoldRefundsCount(SoldRefundsRequest request) { int totalCount = 0; #region MyRegion string param = string.Empty; Dictionary <string, string> keyValuePairs = SignHelper.GetDictionary <SoldRefundsRequest>(request); keyValuePairs.Add("app_key", appKey); keyValuePairs.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); foreach (var kv in keyValuePairs) { param += kv.Key + "=" + kv.Value + "&"; } param = param.Substring(0, param.Length - 1); LogHelper.Info("param参数:" + param); string sign = SignHelper.SignTopRequest(keyValuePairs, "md5", appSecret); LogHelper.Info("sign签名:" + sign); param += "&sign=" + sign; string postUrl = url + WXAppConstants.soldrefundsUrl; var result = string.Empty;//请求结果 try { result = HttpHelper.HttpGet(postUrl, param); LogHelper.Info("请求结果:" + result); } catch (Exception ex) { LogHelper.Info("请求失败:" + ex.Message); } SoldRefundsResponse response = null; if (!string.IsNullOrEmpty(result)) { try { response = JsonConvert.DeserializeObject <SoldRefundsResponse>(result, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); } catch (Exception ex) { LogHelper.Info("转换失败:" + ex.Message); } } if (response != null) { totalCount = response.refunds_get_response.total_results; } #endregion return(totalCount); }
internal string GetPrepay_id(PayDictionary dict, string sign) { dict.Add("sign", sign); SignHelper.BuildQuery(dict, false); string postData = SignHelper.BuildXml(dict, false); return(PostData(prepay_id_Url, postData)); }
public static string ShopSave(IHttpClientFactory httpFactory, SShopSave info) { info.sig = SignHelper.Sign <SShopSave>(info, MeiTAction.shopSave); var client = httpFactory.CreateClient(); FormUrlEncodedContent content = new FormUrlEncodedContent(SignHelper.ToDictionary(info)); var response = client.PostAsync(MeiTAction.shopSave, content).Result.Content.ReadAsStringAsync().Result; return(response); }
internal string GetMWebUrl(PayDictionary dict, string sign, out string prepayId) { prepayId = ""; dict.Add("sign", sign); string url = SignHelper.BuildQuery(dict, false); string text = SignHelper.BuildXml(dict, false); string text2 = PayClient.PostData(PayClient.prepay_id_Url, text); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.XmlResolver = null; try { xmlDocument.LoadXml(text2); } catch (Exception ex) { WxPayLog.writeLog(dict, "加载xml文件错误:" + text2 + ",错误信息:" + ex.Message, url, text, LogType.GetPrepayID); return(""); } try { if (xmlDocument == null) { WxPayLog.writeLog(dict, "加载xml文件错误:" + text2, url, text, LogType.GetPrepayID); return(""); } XmlNode xmlNode = xmlDocument.SelectSingleNode("xml/return_code"); XmlNode xmlNode2 = xmlDocument.SelectSingleNode("xml/result_code"); if (xmlNode == null || xmlNode2 == null) { WxPayLog.writeLog(dict, "retrunnode或者resultnode为空:" + text2, url, text, LogType.GetPrepayID); return(""); } XmlNode xmlNode3 = xmlDocument.SelectSingleNode("xml/prepay_id"); if (xmlNode3 != null) { prepayId = xmlNode3.InnerText; } if (xmlNode.InnerText == "SUCCESS" && xmlNode2.InnerText == "SUCCESS") { XmlNode xmlNode4 = xmlDocument.SelectSingleNode("xml/mweb_url"); if (xmlNode4 != null) { return(xmlNode4.InnerText); } WxPayLog.writeLog(dict, "获取mweb_url结节为空:" + text2, url, text, LogType.GetPrepayID); return(""); } WxPayLog.writeLog(dict, "返回状态为不成功:" + text2, url, text, LogType.GetPrepayID); return(""); } catch (Exception ex) { WxPayLog.writeLog(dict, "加载xml结点失败:" + text2 + ",错误信息:" + ex.Message, url, text, LogType.GetPrepayID); return(""); } }
public async Task <string> Add(CheckInModel checkInModel) { string strRequestJson = checkInModel.ToJson(); ("原始请求内容:" + strRequestJson).WriteToLog(); if (string.IsNullOrEmpty(strRequestJson)) { return(ResponseMessageHandle("", "S05", "消息内容为空")); } //2、消息类型检查 if (!string.Equals(checkInModel.msg_type, BaseInfo.OrderCreateMsgType)) { return(ResponseMessageHandle("", "S04", "消息类型msg_type错误")); } //3、签名检查 try { if (!SignHelper.CheckDataDigest(checkInModel.logistics_interface, checkInModel.data_digest, BaseInfo.SecretKey)) { return(ResponseMessageHandle("", "S02", "消息签名不符,请检查签名")); } } catch (Exception ex) { var mess = new StringBuilder(); mess.Append("报文消息签名检查失败:\n"); mess.Append("\n报文内容:" + checkInModel.logistics_interface); mess.Append("\n错误信息:" + ex.Message + "\n" + ex.StackTrace); mess.ToString().WriteToLog(LogerType.Error); return(ResponseMessageHandle("", "S02", "报文消息签名检查失败")); } //4、报文转换为实体对象 TaobaoOrderModel model; try { model = checkInModel.logistics_interface.ToObjectIgnoreNull <TaobaoOrderModel>(); } catch (Exception ex) { var mess = new StringBuilder(); mess.Append("报文内容格式不符合规范,Json格式转换失败:\n"); mess.Append("\n报文内容:" + checkInModel.logistics_interface); mess.Append("\n错误信息:" + ex.Message + "\n" + ex.StackTrace); mess.ToString().WriteToLog(LogerType.Error); return(ResponseMessageHandle("", "S01", "报文内容格式不符合规范,Json格式转换失败")); } #region 5、写入Mysql数据库 var ret = await t_MySql_OrderService.AddTaoBao(model); return(!ret? ResponseMessageHandle(model.txLogisticID, "S07", "订单写入数据库失败", LogerType.Fatal) : ResponseMessageHandle(model.txLogisticID, "", "", LogerType.Info, true)); #endregion }
private bool ValidFeedbackSign(FeedBackNotify notify) { PayDictionary payDictionary = new PayDictionary(); payDictionary.Add("appid", this._payAccount.AppId); payDictionary.Add("timestamp", notify.TimeStamp); payDictionary.Add("openid", notify.OpenId); return(notify.AppSignature == SignHelper.SignPay(payDictionary, "")); }
public HttpResponseMessage SecureBySign_Expired_KeySecret([FromUri] int age, long _timestamp, string appKey, string _sign) { //key集合,这里随便弄两个测试数据 //如果调用方比较多,需要审核授权,根据一定的规则生成key把这些数据存放在数据库中,如果功能扩展开来,可以针对不同的调用方做不同的功能权限管理 //在调用接口时动态从库里取,每个调用方在调用时带上他的key,调用方一般把自己的key放到网站配置中 Dictionary <string, string> keySecretDic = new Dictionary <string, string>(); keySecretDic.Add("key_zhangsan", "D9U7YY5D7FF2748AED89E90HJ88881E6"); //张三的key, keySecretDic.Add("key_lisi", "I9O6ZZ3D7FF2748AED89E90ZB7732M9"); //李四的key var result = new ResultModel <object>() { ReturnCode = 0, Message = string.Empty, Result = string.Empty }; #region 判断请求是否过期---假设过期时间是20秒 DateTime requestTime = GetDateTimeByTicks(_timestamp); if (requestTime.AddSeconds(20) < DateTime.Now) { result.ReturnCode = -1; result.Message = "接口过期"; return(GetHttpResponseMessage(result)); } #endregion #region 根据appkey获取key值 string secret = keySecretDic.Where(T => T.Key == appKey).FirstOrDefault().Value; #endregion #region 校验签名是否合法 var param = new SortedDictionary <string, string>(new AsciiComparer()); param.Add("age", age.ToString()); param.Add("appKey", appKey); param.Add("appSecret", secret);//把secret加入进行加密 param.Add("_timestamp", _timestamp.ToString()); string currentSign = SignHelper.GetSign(param, appKey); if (_sign != currentSign) { result.ReturnCode = -2; result.Message = "签名不合法"; return(GetHttpResponseMessage(result)); } #endregion var dataResult = stulist.Where(T => T.Age == age).ToList(); result.Result = dataResult; return(GetHttpResponseMessage(result)); }
/// <summary> /// 解析输入消息 /// </summary> /// <param name="channelId">渠道消息</param> /// <param name="msg_signature">加密串</param> /// <param name="timestamp">时间戳</param> /// <param name="nonce">随机串</param> /// <param name="inputMsg">加密消息</param> /// <returns></returns> public static async Task <string> ParseInputMsgAsync(int channelId, string msg_signature, string timestamp, string nonce, string inputMsg) { var encryptMsg = SignHelper.DecryptMsg(channelId, msg_signature, timestamp, nonce, inputMsg); var baseMessageDTO = ParseMessage(channelId, encryptMsg); var result = await KeywordHelper.GetCustomKeywordsReplyAsync <ExecuteResult <string> >(channelId, baseMessageDTO.ToUserName, baseMessageDTO.FromUserName, ""); return(result.Data); }
internal string GetPrepay_id(PayDictionary dict, string sign) { dict.Add("sign", sign); string query = SignHelper.BuildQuery(dict, false); string param = SignHelper.BuildXml(dict, false); string prepayId = PayClient.PostData(PayClient.prepay_id_Url, param); ErrorLog.Write(string.Format("获取预支付Id:OperTime:{0},Info:{1},param:{2},query:{3}", DateTime.Now, prepayId, param, query)); return(prepayId); }
//查询订单状态 public string BuildOrderPackage(string orderId) { PayDictionary payDictionary = new PayDictionary(); payDictionary.Add("appid", this._payAccount.AppId); payDictionary.Add("mch_id", this._payAccount.PartnerId); payDictionary.Add("nonce_str", Utils.CreateNoncestr()); payDictionary.Add("out_trade_no", orderId); string sign = SignHelper.SignPackage(payDictionary, this._payAccount.PartnerKey); payDictionary.Add("sign", sign); return(SignHelper.BuildXml(payDictionary, false)); }
/// <summary> /// 易分工请求 同步 /// </summary> /// <typeparam name="ResponseEntity"></typeparam> /// <param name="RequestValue"></param> /// <param name="YFenGongUrl"></param> /// <returns></returns> public static Response <ResponseEntity> RequestSync <ResponseEntity>(dynamic RequestValue, string YFenGongUrl) where ResponseEntity : class { //加密 SignHelper.RequestValueJson = JsonConvert.SerializeObject(RequestValue); SignHelper.AppSecret = YFenGongConfig.AppSecret; SignHelper.BulidSignResult(); //请求 bool IsSuccess = false; object DataResult = HttpPostHelper.HttpPost(YFenGongUrl, YFenGongConfig.AppId, SignHelper.SignRequestValue, SignHelper.RequestValueJson, out IsSuccess, true); //预转化 return(ResponseConversion.Conversion <ResponseEntity>(DataResult, IsSuccess)); }
public static void Run() { var oldTIme = SignHelper.ConvertLongToDateTime(1543955874034, 0); var oldTime2 = SignHelper.ConvertLongToDateTime(1543665049154, 0); var oldTs = (oldTime2 - oldTIme).TotalSeconds; var currTime = DateTime.Now; //var ts = SignHelper.GetTimestamp(DateTime.Now.AddSeconds(30)); Console.WriteLine("currTime--" + SignHelper.GetTimestamp(currTime)); var ts = SignHelper.GetTimestamp(DateTime.Now.AddMinutes(1)); Console.WriteLine(ts); }
//对账单请求数据 public string BuildBillPackage(string strDateTime, BillType billType) { PayDictionary payDictionary = new PayDictionary(); payDictionary.Add("appid", this._payAccount.AppId); payDictionary.Add("mch_id", this._payAccount.PartnerId); payDictionary.Add("nonce_str", Utils.CreateNoncestr()); payDictionary.Add("bill_date", strDateTime); payDictionary.Add("bill_type", billType.ToString()); string sign = SignHelper.SignPackage(payDictionary, this._payAccount.PartnerKey); payDictionary.Add("sign", sign); return(SignHelper.BuildXml(payDictionary, false)); }
//验签 public static Boolean checkSign(Dictionary <string, string> param, string key, string sign) { if (null != param && key.Length > 0 && key != null && sign.Length > 0 && sign != null) { string signed = SignHelper.sign(param, key); Console.WriteLine("验签 signed :" + signed); Console.WriteLine("验签 sign :" + sign); if (signed.Equals(sign)) { return(true); } } return(false); }
private bool ValidPaySign(PayNotify notify, out string servicesign) { PayDictionary payDictionary = new PayDictionary(); payDictionary = Utils.GetPayDictionary(notify); servicesign = SignHelper.SignPay(payDictionary, this._payAccount.PartnerKey); bool flag = notify.sign == servicesign; if (!flag) { WxPayLog.writeLog(payDictionary, servicesign, "", "签名验证失败", LogType.PayNotify); } servicesign = servicesign + "-" + SignHelper.BuildQuery(payDictionary, false); return(flag); }