Пример #1
0
    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;
        }
    }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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 = ""
            });
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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));
        }
Пример #9
0
        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]));
        }
Пример #10
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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        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);
        }
Пример #13
0
        /// <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)
            {
            }
        }
Пример #14
0
        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);
        }
Пример #15
0
        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);
        }
Пример #16
0
        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);
        }
Пример #17
0
        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));
        }
Пример #18
0
        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);
        }
Пример #19
0
        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("");
            }
        }
Пример #20
0
        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
        }
Пример #21
0
        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, ""));
        }
Пример #22
0
        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));
        }
Пример #23
0
        /// <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);
        }
Пример #24
0
        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);
        }
Пример #25
0
        //查询订单状态
        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));
        }
Пример #26
0
        /// <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));
        }
Пример #27
0
        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);
        }
Пример #28
0
        //对账单请求数据
        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));
        }
Пример #29
0
 //验签
 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);
 }
Пример #30
0
        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);
        }