コード例 #1
0
ファイル: WxController.cs プロジェクト: xin-young/IC
        public IActionResult GetJSSDKConfig(string url)
        {
            var config     = wxService.GetWxJSSDKConfig(wxContext, url);
            var statusCode = config == null ? BIZSTATUS.DATAEMPTY : BIZSTATUS.SUCCESS;

            return(Ok(HttpRequestUtil.GetHttpResponse((int)statusCode, statusCode.GetDescription(), config)));
        }
コード例 #2
0
        /// <summary>
        /// 查询交易订单
        /// </summary>
        /// <returns></returns>
        public WeiXinPayResponse OrderQuery(PayOrderSearchRequest request)
        {
            SortedDictionary <String, String> param = new SortedDictionary <String, String>();
            String noncestr = CommonUtil.CreateNoncestr();
            var    mchId    = isSubCommercial ? Config.SubPartnerId : Config.PartnerId;

            param.Add("appid", appid);
            if (isSubCommercial)
            {
                if (Config.IsMiniAppPay)
                {
                    param.Add("sub_appid", Config.AppId);
                }
                param.Add("sub_mch_id", Config.SubPartnerId);
            }
            param.Add("mch_id", Config.PartnerId);
            param.Add("nonce_str", noncestr);
            if (!string.IsNullOrEmpty(request.TransactionID))
            {
                param.Add("transaction_id", request.TransactionID);
            }

            if (!string.IsNullOrEmpty(request.OutTradeNO))
            {
                param.Add("out_trade_no", request.OutTradeNO);
            }

            String tmpPackageStr = CommonUtil.CreateLinkString(param);
            String signValue     = CommonUtil.Sign(tmpPackageStr, Config.PartnerKey);

            param.Add("sign", signValue);
            String tmpRes = HttpRequestUtil.Send("POST", OrderQueryUrl, CommonUtil.ArrayToXml(param));

            return(ConvertToPayResponse(tmpRes));
        }
コード例 #3
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            HttpRequestUtil httpUtil = null;
            string          md5Str   = "21349" + "21349001" + "rdL68v6n";
            // 获取签名
            string SHAInfo = GetSHA256_HEBCB(md5Str);

            Hashtable headers = new Hashtable();

            headers.Add("merNo", "21349");                //商户编号
            headers.Add("gatewayNo", "21349001");         //网关接入号
            headers.Add("orderNo", "201608170013764468"); //订单号改为流水号  订单编号 非空 txnGetModel.OrderID
            headers.Add("signInfo", SHAInfo);             //交易币种

            string szdata = "";

            using (httpUtil = new HttpRequestUtil("https://check.payforasia.com/servlet/NormalCustomerCheck", 60))
            {
                szdata = httpUtil.SendMessage(headers);
            }

            if (szdata == "1003" || szdata == "1004" || szdata == "")
            {
                string n = "1";
            }
            else
            {
                XmlDocument XMLReasult = new XmlDocument();
                XMLReasult.LoadXml(szdata);
            }
        }
        /// <summary>
        /// Process http outgoing request
        /// </summary>
        private void OnEventStart(object value)
        {
            var request = AgentUtil.FetchPropertyUsingReflection(value, "Request");

            if (request is HttpWebRequest webRequest)
            {
                // Skip AWS SDK Request since it is instrumented using the SDK
                if (HttpRequestUtil.IsTraceable(webRequest))
                {
                    HttpRequestUtil.ProcessRequest(webRequest);

                    try
                    {
                        var currentSubsegment = AWSXRayRecorder.Instance.GetEntity() as Subsegment;
                        if (currentSubsegment != null)
                        {
                            CurrentHttpWebRequests.TryAdd(webRequest, currentSubsegment);
                        }
                    }
                    catch (EntityNotAvailableException e)
                    {
                        AWSXRayRecorder.Instance.TraceContext.HandleEntityMissing(AWSXRayRecorder.Instance, e, "Subsegment is not available in trace context.");
                    }
                }
            }
        }
コード例 #5
0
        /// <summary>
        /// 打印票据
        /// </summary>
        /// <param name="billModel"></param>
        /// <returns></returns>
        public bool DoPrint(BillViewModel billModel, out string errMsg)
        {
            var isOk = false;

            try
            {
                LogUtil.Info("开始执行小票打印...");

                var url   = string.Format("{0}/mcp/sys/print", apiDomain);
                var parms = string.Format("app_id={0}&access_token={1}&merchant_code={2}&printer_codes={3}&copies={4}&bill_no={5}&bill_type={6}&template_id={7}&bill_content={8}",
                                          billModel.app_id.Trim(), billModel.access_token.Trim(), billModel.merchant_code.Trim(), billModel.printer_codes.Trim().ToUpper(),
                                          billModel.copies.Trim(), billModel.bill_no.Trim(), billModel.bill_type.Trim(),
                                          billModel.template_id.Trim(), billModel.bill_content.Trim());
                var result  = HttpRequestUtil.HttpPost(url, parms);
                var apiData = JsonUtil.ToObject <ApiDataQueryModel>(result);
                if (apiData != null)
                {
                    isOk   = apiData.status == 1;
                    errMsg = isOk ? string.Empty : apiData.data.ToString();
                }
                else
                {
                    errMsg = "打印失败";
                }
            }
            catch (Exception ex)
            {
                errMsg = "打印失败";
                LogUtil.Error(string.Format("执行打印失败,参考消息:{0}", ex.Message));
            }
            return(isOk);
        }
コード例 #6
0
        /// <summary>
        /// 获取微云打API接口访问令牌
        /// </summary>
        /// <returns></returns>
        public string GetAccessToken()
        {
            var appModel    = new AppViewModel();
            var expiresIn   = 0;
            var accessToken = CacheFactory.Cache().GetCache <string>(appModel.app_id.Trim()) ?? string.Empty;

            if (string.IsNullOrWhiteSpace(accessToken))
            {
                var url     = string.Format("{0}/mcp/sys/getAccessToken", apiDomain);
                var parms   = string.Format("app_id={0}&app_key={1}", appModel.app_id.Trim(), appModel.app_key.Trim());
                var result  = HttpRequestUtil.HttpGet(url, parms);
                var apiData = JsonUtil.ToObject <ApiDataQueryModel>(result);
                if (apiData != null && apiData.status == 1)
                {
                    var token = JsonUtil.ToObject <Dictionary <string, object> >(apiData.data.ToString());
                    if (token != null && token.ContainsKey("access_token"))
                    {
                        //缓存中访问令牌,提前10分钟过期
                        accessToken = token["access_token"].ToString();
                        expiresIn   = Extensions.ToInt(token["expires_in"], 0) - CacheKeyConsts.CachePreExpiresSeconds;
                        expiresIn   = expiresIn > 0 ? expiresIn : 0;
                        CacheFactory.Cache().WriteCache(expiresIn > 0 ? accessToken : string.Empty, appModel.app_id.Trim(), TimeUtil.Now.AddSeconds(expiresIn));
                    }
                }
                return(accessToken);
            }
            else
            {
                return(accessToken ?? string.Empty);
            }
        }
コード例 #7
0
ファイル: AccountController.cs プロジェクト: xin-young/IC
        public IActionResult IsRegister(string openId)
        {
            var res        = dbService.GetUserByOpenId(openId);
            var isRegister = res.Count() <= 0 ? false : true;

            return(Ok(HttpRequestUtil.GetHttpResponse((int)BIZSTATUS.SUCCESS, BIZSTATUS.SUCCESS.GetDescription(), isRegister)));
        }
        /// <summary>
        /// 确认订单
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="appAuthToken"></param>
        /// <returns></returns>
        public string ConfirmOrder(long orderId, string appAuthToken)
        {
            var errMsg = string.Empty;
            var parms  = new SortedDictionary <string, object>();

            parms.Add("orderId", orderId);
            parms.Add("appAuthToken", appAuthToken);
            parms.Add("charset", "utf-8");
            parms.Add("timestamp", TimeUtil.SecondTicks_1970);
            var sign = SignUtil.GetMeituanSign(parms, ConfigUtil.MeiSignKey);

            var parmStr = new StringBuilder();
            var url     = MeituanConsts.CONFIRM_ORDER_API;

            foreach (var parm in parms)
            {
                parmStr.AppendFormat("{0}={1}&", parm.Key, parm.Value);
            }
            var pars = string.Format("{0}sign={1}", parmStr.ToString(), sign);

            try
            {
                var result = HttpRequestUtil.HttpPost(url, pars);
                LogUtil.Info(string.Format("调用确认订单接口,返回:{0}", result));
                if (result.ToUpper().IndexOf("\"" + MeituanConsts.API_RETURN_OK + "\"") <= -1)
                {
                    errMsg = result;
                }
            }
            catch (Exception ex)
            {
                errMsg = ex.InnerException.ToString();
            }
            return(errMsg);
        }
コード例 #9
0
        private string getPageContent(string url, int pageNumber, string order)
        {
            order = order.Replace("&amp;", "&");
            string clientUrl = webUrl + url + "&page=" + pageNumber + "&order=" + order;

            return(HttpRequestUtil.requestURL(clientUrl, "utf-8"));
        }
コード例 #10
0
        /// <summary>
        /// 登出。
        /// </summary>
        /// <param name="userName">用户名。</param>
        /// <param name="cancelAutoLogin">一个值,指示是否取消自动登入。</param>
        /// <returns></returns>
        public IManagerPage Logout(string userName, bool cancelAutoLogin)
        {
            LogoutInfo logoutInfo = new LogoutInfo()
            {
                wlanAcName = this.wlanAcName,
                wlanUserIp = this.wlanUserIp,
                userName   = userName,
                encryUser  = string.Format("{0}{1:D15}",
                                           this.currentTime.ToString("yyyyMMddHHmmssfff"), // 当前日期时间作为前17位.
                                           0                                               // 后跟15位0,补齐32位。
                                           )
            };
            string dataStr = logoutInfo.SerializeData();

            string response = this.encoding.GetString(
                HttpRequestUtil.Post(
                    this.loginActionAddress,
                    this.encoding.GetBytes(dataStr)
                    )
                );

            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(response);

            return(new LogoutingPage(doc)
            {
                wlanAcName = this.wlanAcName,
                wlanUserIp = this.wlanUserIp,
                scriptVariants = this.scriptVariants
            });
        }
コード例 #11
0
        public object GetMeituanGetUrl()
        {
            //1.校验请求参数
            var errMsg = string.Empty;
            var parms  = new SortedDictionary <string, object>();

            parms.Add("appAuthToken", "5eb0b7509b2148e2a5ba4a4c671e9750208bb59ef8e3c7f4349cb88aa8d63384224cc76585b83f9f112b3480b715fd52");
            parms.Add("charset", "utf-8");
            parms.Add("timestamp", TimeUtil.SecondTicks_1970);
            //parms.Add("ePoiId", "10004");
            var sign = SignUtil.GetMeituanSign(parms, ConfigUtil.MeiSignKey);

            var parmStr = new StringBuilder();
            var url     = "http://api.open.cater.meituan.com/waimai/dish/queryCatList";//"http://api.open.cater.meituan.com/waimai/dish/queryBaseListByEPoiId";

            foreach (var parm in parms)
            {
                parmStr.AppendFormat("{0}={1}&", parm.Key, parm.Value);
            }
            var pars = string.Format("{0}sign={1}", parmStr.ToString(), sign);

            try
            {
                var result = HttpRequestUtil.HttpGet(url, pars);
                LogUtil.Info(string.Format("调用接口,返回:{0}", result));

                errMsg = result;
            }
            catch (Exception ex)
            {
                errMsg = ex.InnerException.ToString();
            }
            return(errMsg);
        }
コード例 #12
0
        public UrlTemplate GetUrlTemplate(MethodInfo methodInfo)
        {
            var serviceAttribute = methodInfo.DeclaringType.GetCustomAttribute <ConsulServiceAttribute>();

            if (serviceAttribute != null)
            {
                var serviceName   = serviceAttribute.ServiceName;
                var pathAttribute = methodInfo.GetCustomAttribute <ConsulPathAttribute>();
                if (pathAttribute != null)
                {
                    var urlPath     = pathAttribute.Path;
                    var httpMethod  = pathAttribute.HttpMethod;
                    var loadBalance = LoadBalanceRepository.GetLoadBalance(methodInfo.DeclaringType.FullName);
                    var serviceInfo = _consulInfoProvider.GetServiceInfo(serviceName, loadBalance);
                    if (serviceInfo == null)
                    {
                        throw new Exception($"Can't find {serviceName} in Consul");
                    }
                    var host = serviceInfo.Address.StartsWith("http") ? serviceInfo.Address : $"http://{serviceInfo.Address}";
                    return(new UrlTemplate
                    {
                        Host = $"{host}:{serviceInfo.ServicePort}",
                        HttpMethod = httpMethod,
                        Url = urlPath
                    });
                }
            }

            return(HttpRequestUtil.BuildUrlTemplate(methodInfo));
        }
コード例 #13
0
        public void InitServiceTest()
        {
            new Thread(() => {
                while (true)
                {
                    var pid = "0";
                    try
                    {
                        pid = HttpRequestUtil.GetHttpResponse("http://localhost:8081/pid", 3000);
                    }
                    catch (Exception e) { }

                    var p = Convert.ToInt64(pid);
                    if (p > 0)
                    {
                        CmdUtils.RunCmdStandard("taskkill /f /pid " + p);
                        break;
                    }
                    else
                    {
                        Thread.Sleep(3000);
                    }
                }
            }).Start();

            IRpcService rpc = new RpcServiceImpl();

            rpc.ReCreateJMapQuery();
            rpc.InitService();
        }
コード例 #14
0
        /// <summary>
        /// 发送普通心跳
        /// </summary>
        public void SendCommonHeartbeat()
        {
            try
            {
                var deviceList = spServ.GetList(PlatformType.Meituan);
                var devices    = (from d in deviceList
                                  select new
                {
                    ePoiId = d.ShopId.ToString(),
                    posId = d.PrinterCode
                }).ToList();

                var parms = new SortedDictionary <string, object>();
                parms.Add("developerId", ConfigUtil.MeiDeveloperId);
                parms.Add("time", TimeUtil.SecondTicks_1970);
                parms.Add("list", devices);

                var datastr = JsonUtil.ToJson(parms);
                var data    = new SortedDictionary <string, object>();
                data.Add("data", datastr);

                var sign   = SignUtil.GetMeituanSign(data, ConfigUtil.MeiSignKey);
                var url    = MeituanConsts.COMMON_HEARBEAT_API;
                var pars   = string.Format("data={0}&sign={1}", datastr, sign);
                var result = HttpRequestUtil.HttpPost(url, pars);

                LogUtil.Info(string.Format("发送普通心跳,返回:{0}", result));
            }
            catch (Exception ex)
            {
                LogUtil.Error(string.Format("发送普通心跳失败,参考信息:{0}", ex.Message));
            }
        }
コード例 #15
0
ファイル: AccountController.cs プロジェクト: xin-young/IC
        public IActionResult RechargeCallBack(string openId, decimal amount)
        {
            var isOk  = dbService.ReCharge(openId, amount);
            var state = isOk ? BIZSTATUS.SUCCESS : BIZSTATUS.FAILEDTORECHARGE;

            return(Ok(HttpRequestUtil.GetHttpResponse((int)state, state.GetDescription(), "")));
        }
コード例 #16
0
        /// <summary>
        /// 查询订单
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="appAuthToken"></param>
        /// <returns></returns>
        public MeituanOrderModel QueryOrder(string orderId, string appAuthToken)
        {
            MeituanOrderModel orderModel = null;

            try
            {
                var parms = new SortedDictionary <string, object>();
                parms.Add("orderId", orderId);
                parms.Add("appAuthToken", appAuthToken);
                parms.Add("charset", "utf-8");
                parms.Add("timestamp", TimeUtil.SecondTicks_1970);
                var sign = SignUtil.GetMeituanSign(parms, ConfigUtil.MeiSignKey);

                var parmStr = new StringBuilder();
                var url     = MeituanConsts.QUERY_ORDER_BYID_API;
                foreach (var parm in parms)
                {
                    parmStr.AppendFormat("{0}={1}&", parm.Key, parm.Value);
                }
                var pars   = string.Format("{0}sign={1}", parmStr.ToString(), sign);
                var result = HttpRequestUtil.HttpPost(url, pars);
                LogUtil.Info(string.Format("调用查询订单接口,返回:{0}", result));
                var retValue = JsonUtil.ToObject <ApiDataQueryModel>(result);
                orderModel = JsonUtil.ToObject <MeituanOrderModel>(retValue.data.ToString());
            }
            catch (Exception ex)
            {
                var msg = string.Format("查询美团订单失败,订单Id:{0},访问令牌:{1},参考信息:{2}", orderId, appAuthToken, ex.InnerException);
                LogUtil.Error(msg);
            }
            return(orderModel);
        }
コード例 #17
0
        /// <summary>
        /// 查询美团门店信息
        /// </summary>
        /// <returns></returns>
        public MeituanShopModel GetMeituanShop(string appAuthToken, string ePoiIds)
        {
            MeituanShopModel model = null;
            var parms = new SortedDictionary <string, object>();

            parms.Add("appAuthToken", appAuthToken);
            parms.Add("charset", "utf-8");
            parms.Add("timestamp", TimeUtil.SecondTicks_1970);
            parms.Add("ePoiIds", ePoiIds);
            var sign = SignUtil.GetMeituanSign(parms, ConfigUtil.MeiSignKey);

            var parmStr = new StringBuilder();
            var url     = MeituanConsts.QUERY_SHOP_INFO_API;

            foreach (var parm in parms)
            {
                parmStr.AppendFormat("{0}={1}&", parm.Key, parm.Value);
            }
            var pars = string.Format("{0}sign={1}", parmStr.ToString(), sign);

            try
            {
                var result = HttpRequestUtil.HttpGet(url, pars);
                LogUtil.Info(string.Format("调用查询美团门店接口,返回:{0}", result));
                var list = JsonUtil.ToObject <List <MeituanShopModel> >(result.Replace("{\"data\":", string.Empty).TrimEnd('}'));
                model = (list != null && list.Count > 0) ? list.FirstOrDefault() : null;
            }
            catch (Exception ex)
            {
                LogUtil.Error(string.Format("调用查询美团门店接口失败,参考信息:{0}", ex.InnerException.ToString()));
            }
            return(model);
        }
コード例 #18
0
        /// <summary>
        /// 通过网页重定向获取 <see cref="Wlan_eduManager"/> 实例。
        /// </summary>
        /// <returns>Wlan-edu 管理器实例。</returns>
        public static Wlan_eduManager CreateManagerFromRedirection()
        {
            string       url;
            Encoding     encoding = Encoding.UTF8;
            HtmlDocument document;

            // 通过重定向获取登录地址。
            url      = "http://1.1.1.1/";
            document = new HtmlDocument();
            document.Load(HttpRequestUtil.GetHtmlContentStreamReader(url, encoding));
            string refresh_content = document.DocumentNode.SelectSingleNode(@"html/head/meta[@http-equiv='refresh']")?.GetAttributeValue("content", null);

            ;

            // 获取登录地址。
            url = Regex.Match(refresh_content.Split(';')[1], @"url=(?<Url>\S*)").Groups["Url"].Value;
            var queryArgs =
                Regex.Matches(
                    new Uri(url, UriKind.Absolute).Query,
                    @"(?<=^\?|&)(?<Key>\w+?)=(?<Value>\S*?)(?=&|$)"
                    )
                .OfType <Match>()
                .ToDictionary(
                    (match => match.Groups["Key"].Value.ToLower()),
                    (match => match.Groups["Value"].Value)
                    );
            string wlanAcName = queryArgs["wlanacname"];
            string wlanUserIp = queryArgs["wlanuserip"];

            ;

            return(new Wlan_eduManager(wlanAcName, wlanUserIp, url, encoding));
        }
コード例 #19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            HttpRequestUtil httpUtil  = null;
            Hashtable       headers   = new Hashtable();
            Logger          m_oLogger = new Logger(@"C:\Users\Fan\Desktop\ceshi\test.log", 0);

            headers.Add("merNo", 1);                                                                                       //商户编号
            headers.Add("terNo", 1);                                                                                       //终端号
            headers.Add("transType", "sales");                                                                             //交易类型
            headers.Add("apiType", 1);                                                                                     //接口类型 默认传递1;(1普通接口、2 app sdk、3快捷支付、4 虚拟
            headers.Add("transModel", "M");                                                                                //交易模式
            headers.Add("EncryptionMode", "SHA256");                                                                       //加密方式类型
            headers.Add("CharacterSet", "UTF8");                                                                           //字符编码
            headers.Add("amount", 1);                                                                                      //保留两位小数 Math.Round( Convert.ToDecimal(m_PostAmt) / 100,2)
            headers.Add("currencyCode", "CNY");                                                                            //交易币种
            headers.Add("orderNo", 1);                                                                                     //订单号改为流水号  订单编号 非空 txnGetModel.OrderID
            headers.Add("merremark", "商户预留字段");                                                                            //商户预留字段
            headers.Add("returnURL", "http://www.yourshop.com/returnpage.php");                                            //returnURL
            headers.Add("webInfo", @"userAgent:Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"); //客户端浏览器信息
            headers.Add("language", "En");                                                                                 //语言
            using (httpUtil = new HttpRequestUtil("https://h7226.dkhdz.com:4430/ACCPGW/Payment/PaymentInterface.aspx", 60))
            {
                string szdata = httpUtil.SendMessage(headers);
            }
        }
コード例 #20
0
        private ElemeRetTokenModel GetTokenByRefreshToken(StringBuilder parms, int tryNum)
        {
            //请求接口地址
            ElemeRetTokenModel token = null;
            var header       = Base64Util.Base64Encode(string.Format("{0}:{1}", ConfigUtil.EleAppKey, ConfigUtil.EleAppSecret), Encoding.UTF8);
            var responseText = HttpRequestUtil.HttpPost(ElemeConsts.GET_ACCESS_TOKEN_API, parms.ToString(), false, header);

            if (!string.IsNullOrWhiteSpace(responseText))
            {
                token = JsonUtil.ToObject <ElemeRetTokenModel>(responseText);
                if (token == null)
                {
                    LogUtil.Error(string.Format("通过RefreshToken获取AccessToken返回错误信息:{0},请求参数:{1}", responseText, parms.ToJson()));
                }
                else
                {
                    //令牌提前半天过期(12h)
                    token.expires_in = token.expires_in - (12 * 60 * 60);
                    LogUtil.Info(string.Format("尝试通过RefreshToken:{0}获取AccessToken:{1}", parms.ToString(), token.ToJson()));
                }
            }
            else
            {
                LogUtil.Error(string.Format("通过RefreshToken获取AccessToken失败,返回信息为空,请求参数:{0}", parms.ToJson()));
            }
            return(token);
        }
コード例 #21
0
ファイル: EtlWorker.cs プロジェクト: cqpaul/micro-ddd-shell
        // Get Village location: lat & lag from Baidu
        // http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
        private LocationInfo GetNewVillageLocation(string villageName)
        {
            LocationInfo locationInfo = new LocationInfo();

            try
            {
                string     baiAk      = "7UA0GQRgTDFVcQ8bnpA7LFsFiFQRIphS";
                string     getUrl     = $"http://api.map.baidu.com/geocoding/v3/?address=重庆市{villageName}&output=json&ak={baiAk}";
                string     response   = HttpRequestUtil.CreateGetHttpResponse(getUrl);
                RootObject rootObject = JsonConvert.DeserializeObject <RootObject>(response);
                // Update to the database
                if (rootObject.Status == 0)
                {
                    locationInfo.VillageName = villageName;
                    locationInfo.Lat         = rootObject.Result.Location.Lat;
                    locationInfo.Lng         = rootObject.Result.Location.Lng;
                }
                Console.WriteLine(response);
                Console.WriteLine($"{DateTime.Now}: get location info from BaiDu Map for {villageName}.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(null);
            }

            return(locationInfo);
        }
コード例 #22
0
ファイル: WxService.cs プロジェクト: njmjr/WeChat
        public void SendTemplateMessage(TemplateMessage request, TemplateMessageResponse response)
        {
            AtResponse wxr = GetAcc();

            if (String.IsNullOrEmpty(wxr.Expires_in))
            {
                throw new WeChatException("GET_ACCESSTOKEN_FAIL", "获取AccessToken失败");
            }

            Hashtable s1 = new Hashtable {
                { @"keynote1", request.keynote1 }, { @"keynote2", request.keynote2 }
            };
            string    data = XmlAndJsonToHash.HashTableToXml(s1);
            Hashtable s2   = new Hashtable
            {
                { @"touser", request.touser },
                { @"template_id", request.template_id },
                { @"url", request.url },
                { @"data", data }
            };
            string     postData = XmlAndJsonToHash.HashTableToXml(s2);
            String     wxResult = HttpRequestUtil.HttpPost(string.Format(TemplateMessageUrl, wxr.Access_token), postData);
            TmResponse tr       = JsonHelper.Deserialize <TmResponse>(wxResult);

            if (tr.errmsg.ToUpper() == "OK")
            {
                response.errcode = tr.errcode;
                response.errmsg  = tr.errmsg;
                response.ResponseStatus.ErrorCode = "OK";
            }
            else
            {
                throw new WeChatException("SendTemplateMessage_fail", "发送模板消息失败");
            }
        }
コード例 #23
0
 public SaveRedirect(SiteCollector collector, string path, Action <Action> queue, HttpRequestUtil request)
 {
     _collector = collector;
     _path      = path;
     _queue     = queue;
     _request   = request;
 }
コード例 #24
0
        // 二供执行体辅助工具
        private PandaToken GetToken()
        {
            PandaToken token     = null;
            string     AppKey    = param.appKey;
            string     appSecret = param.appSecret;
            string     url       = param.getTokenUrl;
            IDictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("AppKey", AppKey);
            parameters.Add("appSecret", appSecret);
            HttpRequestUtil requestUtil = new HttpRequestUtil(ContentType.XWwwFromUrlencoded);

            requestUtil.CreateSyncPostHttpRequest(url, parameters, (successData) =>
            {
                token = ByteUtil.ToDeserializeObject <PandaToken>(successData);
                if (token == null)
                {
                    TraceManagerForWeb.AppendErrMsg("获取熊猫二供接口token失败:" + "返回的数据格式不正确");
                    return;
                }
                if (token.code == "200")
                {
                    TraceManagerForWeb.AppendDebug("获取熊猫二供接口token成功");
                    return;
                }
                else if (token.code == "10005")
                {
                    TraceManagerForWeb.AppendErrMsg("获取熊猫二供接口token失败:" + "参数为空或格式不正确,确认appKey是否正确");
                    token = null;
                    return;
                }
                else if (token.code == "10006")
                {
                    TraceManagerForWeb.AppendErrMsg("获取熊猫二供接口token失败:" + "Appkey和AppSecret不匹配");
                    token = null;
                    return;
                }
                else if (token.code == "49999")
                {
                    TraceManagerForWeb.AppendErrMsg("获取熊猫二供接口token失败:" + "接口调用异常");
                    token = null;
                    return;
                }
                else
                {
                    TraceManagerForWeb.AppendErrMsg("获取熊猫二供接口token失败:" + "错误的返回码");
                    token = null;
                    return;
                }
            }, (failData) => {
                token = null;
                TraceManagerForWeb.AppendErrMsg("获取熊猫二供接口token失败" + failData);
            }, (doErrorData) => {
                token = null;
                TraceManagerForWeb.AppendErrMsg("处理熊猫二供接口token数据失败" + doErrorData);
            });

            return(token);
        }
コード例 #25
0
        public SMSResult SentSMS(string phone, int code)
        {
            Dictionary <string, string> paramDict = new Dictionary <string, string>();

            paramDict.Add("phone", phone);
            paramDict.Add("code", Convert.ToString(code));
            return(HttpRequestUtil.Get <SMSResult>(Const.SMSUrl, paramDict));
        }
コード例 #26
0
ファイル: AccountController.cs プロジェクト: xin-young/IC
        public IActionResult SendVerificationCode(string openId, string phone)
        {
            var code = verificationCodeService.NewCode(codeDict, phone);

            var result = smsService.SentSMS(phone, code.Code);

            return(Ok(HttpRequestUtil.GetHttpResponse((int)BIZSTATUS.SUCCESS, BIZSTATUS.SUCCESS.GetDescription(), result)));
        }
コード例 #27
0
ファイル: WxService.cs プロジェクト: njmjr/WeChat
        /// <summary>
        /// 统一下单接口
        /// </summary>
        /// <param name="request"></param>
        /// <param name="response"></param>
        public void CreateOrders(CreateOrder request, CreateOrderResponse response)
        {
            DateTime dt         = DateTime.Now;
            string   timeStart  = string.Format("{0:yyyyMMddHHmmss}", dt);
            string   timeExpire = string.Format("{0:yyyyMMddHHmmss}", dt.AddSeconds(300));
            SortedDictionary <string, string> ht = new SortedDictionary <string, string>
            {
                { "appid", ConfigurationManager.AppSettings["APPID"] },
                { "mch_id", ConfigurationManager.AppSettings["MCHID"] },
                { "device_info", "WEB" },
                { "nonce_str", RandomHelper.GenerateString(32) },
                { "sign_type", "MD5" },
                { "body", request.Body },
                { "detail", request.Detail },
                { "attach", request.Attach },
                { "out_trade_no", request.OutTradeNo },
                { "fee_type", "CNY" },
                { "total_fee", "" + request.TotalFee },
                { "spbill_create_ip", request.SpbillCreateIp },
                { "time_start", timeStart },
                { "time_expire", timeExpire },
                { "goods_tag", request.GoodsTag },
                { "notify_url", ConfigurationManager.AppSettings["NOTIFYURL"] },
                { "trade_type", "JSAPI" },
                { "openid", request.Openid },
                { "product_id", request.ProductId }
            };

            if (string.IsNullOrEmpty(request.LimitPay))
            {
                if (request.LimitPay == "no_credit")
                {
                    ht.Add("limit_pay", "no_credit");
                }
            }

            string sign = Md5Helper.UserMd5(WxPayHelper.CreateSign(ht));

            ht.Add("sign", sign);
            string    postXml  = WxPayHelper.CreateXmlRequest(ht);
            string    wxResult = HttpRequestUtil.HttpPost(UrlUnifiedorder, postXml);
            Hashtable htt      = XmlAndJsonToHash.XmlToHashTable(wxResult);

            wxResult = JsonHelper.ToJson(htt);
            CoResponse tr = JsonHelper.Deserialize <CoResponse>(wxResult);

            response.ResponseStatus.ErrorCode = tr.return_code;
            response.ResponseStatus.Message   = tr.return_msg;
            if (tr.return_code == "SUCCESS" && tr.result_code == "SUCCESS")
            {
                response.PrepayId = tr.prepay_id;
            }
            else
            {
                response.ResponseStatus.ErrorCode = tr.err_code;
                response.ResponseStatus.Message   = tr.err_code_des;
            }
        }
コード例 #28
0
        public void IsNoCacheRequested_NullHeader_False()
        {
            // Act
            var result = HttpRequestUtil.IsNoCacheRequested(null);

            // Assert

            Assert.IsFalse(result);
        }
コード例 #29
0
        public void IsNoCacheRequested_ContainsNoCache_True()
        {
            // Act
            var result = HttpRequestUtil.IsNoCacheRequested("no-cache");

            // Assert

            Assert.IsTrue(result);
        }
コード例 #30
0
ファイル: WxService.cs プロジェクト: njmjr/WeChat
        private AtResponse GetAcc()
        {
            var        appId     = ConfigurationManager.AppSettings["APPID"];
            var        appsecret = ConfigurationManager.AppSettings["APPSECRET"];
            String     wxResult  = HttpRequestUtil.HttpGet(string.Format(AccessTokenUrl, appId, appsecret));
            AtResponse wxr       = JsonHelper.Deserialize <AtResponse>(wxResult);

            return(wxr);
        }