Ejemplo n.º 1
0
        /// <summary>
        ///得到js验证
        /// </summary>
        /// <returns></returns>
        protected virtual WechatModel GetWechatModel()
        {
            if (!Site.IsOpenImages)
            {
                return(null);
            }
            var    url        = Request.Url.AbsoluteUri;
            var    siteWechat = this.Wechat(null);
            string key        = Winner.Creator.Get <Winner.Base.ISecurity>().EncryptMd5(string.Format("{0}{1}", siteWechat.AppId, url));
            var    rev        = Ioc.Resolve <ICacheApplicationService>().Get <IDictionary <string, string> >(key);

            if (rev == null)
            {
                rev = siteWechat.GetJsSdkSignature(url);
                if (rev == null)
                {
                    return(null);
                }
                Ioc.Resolve <ICacheApplicationService>().Set(key, rev, DateTime.Now.AddSeconds(7100));
            }
            var model = new WechatModel
            {
                AppId     = siteWechat.AppId,
                Timestamp = rev["timestamp"],
                NonceStr  = rev["noncestr"],
                Signature = rev["signature"]
            };

            return(model);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public virtual ActionResult Index(string message)
        {
            var model = new WechatModel
            {
                AccountNumbers = GetAccountNumbers(),
                Message        = message
            };

            return(View("~/Views/Account/Wchat/Index.cshtml", model));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 首页
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            var site = this.GetEntity <SiteEntity>(SiteId);

            if (site == null || string.IsNullOrEmpty(site.WechatAppId) || !site.IsOpenSubscribeUser)
            {
                return(Content("您尚未开通获取关注用户功能"));
            }
            var model = new WechatModel();

            return(View("~/Views/Wechat/index.cshtml", model));
        }
Ejemplo n.º 4
0
        public IActionResult GetWechat(WechatModel model)
        {
            var response = ResponseModelFactory.CreateInstance;
            var code     = "0";
            //model.Appid = "wx0bf342f51437ca67";
            //model.Secret = "b58718e16c0d2736f3959587ccd4f24f";
            //先根据用户请求的uri构造请求地址
            string serviceUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=" + model.Appid + "&secret=" + model.Secret +
                                "&js_code=" + model.Js_code;
            //创建Web访问对象
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);

            //把用户传过来的数据转成“UTF-8”的字节流
            //byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);

            myRequest.Method = "POST";
            //myRequest.ContentLength = buf.Length;
            myRequest.ContentType = "application/x-www-form-urlencoded";
            //myRequest.MaximumAutomaticRedirections = 1;
            //myRequest.AllowAutoRedirect = true;
            //发送请求
            Stream stream = myRequest.GetRequestStream();

            //stream.Write(buf, 0, buf.Length);
            stream.Close();

            //获取接口返回值
            //通过Web访问对象获取响应内容
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
            //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
            string returnJson = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾

            code = myResponse.StatusCode.ToString();
            reader.Close();
            myResponse.Close();
            var data = JsonConvert.DeserializeObject <OpenIDModel>(returnJson);

            if (code == "OK" && !string.IsNullOrEmpty(data.Openid))
            {
                response.SetSuccess();
                response.SetData(data);
                return(Ok(response));
            }
            else
            {
                response.SetFailed();
                response.SetData(null);
                return(Ok(response));
            }
        }
Ejemplo n.º 5
0
        public ResponseItem MessageByIDs(WechatModel value)
        {
            var plt = User_Platforms_Wechat();

            var f = new Fans(plt.Access_token);

            String errMsg = String.Empty;

            int errcode = 0;

            foreach (var v in value.IDs)
            {
                JObject code = null;

                if (value.Type.Equals("image"))
                {
                    code = f.SendByImage(v, value.MaterialID);
                }
                if (value.Type.Equals("news"))
                {
                    foreach (var vv in value.News)
                    {
                        if (string.IsNullOrEmpty(vv.url))
                        {
                            //根域名
                            vv.url = request.Url.Authority;
                        }
                    }

                    code = f.SendByNews(v, value.News);
                }
                else
                {
                    code = f.SendMsg(v, value.Message);
                }

                if (code.Value <int>("errcode") != 0)
                {
                    errcode = code.Value <int>("errcode");

                    errMsg += code.Value <String>("errmsg") + ",";
                }
            }

            return(new ResponseItem(errcode, errMsg));
        }
Ejemplo n.º 6
0
        public virtual ActionResult Modify(WechatModel model)
        {
            if (model == null)
            {
                return(null);
            }
            var entity = new AccountNumberEntity {
                Id = model.Id, Name = model.Name, SaveType = SaveType.Modify
            };

            entity.SetProperty(it => it.Name);
            var result = new Dictionary <string, object>();
            var rev    = this.SaveEntity(entity);
            var mess   = rev ? "" : entity.Errors?.FirstOrDefault()?.Message;

            result.Add("Status", rev);
            result.Add("Message", mess);
            return(this.Jsonp(result));
        }
 public IActionResult Index(WechatModel model)
 {
     ViewBag.acctoken = new WechatHelper(option).GetAccess_Token(model.AppId, model.AppSecret);
     return(View());
 }