Ejemplo n.º 1
0
        public ActionResult Bargain(string code, string state)
        {
            System.IO.File.AppendAllText(HttpContext.Server.MapPath("") + "waht.txt", code + "     :" + DateTime.Now.ToSafeString() + "\r\n\r\n");
            try
            {
                #region 缓存用户
                if (Session["Lu"] != null)
                {
                    JsApi.LuckDrawUser Lu = Session["Lu"] as JsApi.LuckDrawUser;

                    if (Lu.subscribe == 0)
                    {
                        string luckdrawuser     = Commen.HttpRequest.GetResponseString("https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + JsApi.JsToken.GetApptoken() + "&openid=" + Lu.openid + "&lang=zh_CN");
                        JavaScriptSerializer js = new JavaScriptSerializer();
                        Lu = js.Deserialize <JsApi.LuckDrawUser>(luckdrawuser);
                    }
                    ViewBag.lu = Lu;

                    if (Lu.openid.IsEmpty())
                    {
                        Session["Lu"] = null;
                        return(Redirect("http://mobile.mj100.com/wechart/login7/"));
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(code.ToSafeString()))
                    {
                        string post_data                = "appid=" + "wx2c2f2e7b5b62daa1" + "&secret=" + "ed815afc669a9201a6070677d1771166" + "&code=" + code + "&grant_type=authorization_code";
                        string requestData              = tenpay.TenpayUtil.PostXmlToUrl(tenpay.TenpayUtil.getAccess_tokenUrl(), post_data);
                        JavaScriptSerializer js         = new JavaScriptSerializer();                             //实例化一个能够序列化数据的类
                        string             openid       = js.Deserialize <JsApi.WeChartUser>(requestData).openid; //用户的openid
                        string             luckdrawuser = Commen.HttpRequest.GetResponseString("https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + JsApi.JsToken.GetApptoken() + "&openid=" + openid + "&lang=zh_CN");
                        JsApi.LuckDrawUser Lu           = js.Deserialize <JsApi.LuckDrawUser>(luckdrawuser);

                        Session["Lu"] = Lu;

                        ViewBag.lu = Lu;


                        JsApi.Businesslogic.AddWechartUser3(Lu.openid, Lu.nickname, Lu.headimgurl);//入库
                    }
                    else
                    {
                        JsApi.LuckDrawUser Lu = Session["Lu"] as JsApi.LuckDrawUser;

                        if (Lu.subscribe == 0)
                        {
                            string luckdrawuser     = Commen.HttpRequest.GetResponseString("https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + JsApi.JsToken.GetApptoken() + "&openid=" + Lu.openid + "&lang=zh_CN");
                            JavaScriptSerializer js = new JavaScriptSerializer();
                            Lu         = js.Deserialize <JsApi.LuckDrawUser>(luckdrawuser);
                            ViewBag.lu = Lu;
                        }
                    }
                }
                #endregion

                #region 签名
                string timestamp = JsApi.JsToken.getTimestamp();
                string noncestr  = JsApi.JsToken.getNoncestr();

                SortedDictionary <string, string> sor = new SortedDictionary <string, string>();
                sor.Add("url", Request.Url.ToString());
                sor.Add("timestamp", timestamp);
                sor.Add("noncestr", noncestr);
                sor.Add("jsapi_ticket", JsApi.JsToken.Getjsapi_ticket());

                ViewBag.jsapi_ticket = JsApi.JsToken.Getjsapi_ticket();
                ViewBag.url          = Request.Url.ToString();
                ViewBag.appid        = tenpay.WeChartConfigItem.appid;
                ViewBag.timestamp    = timestamp;
                ViewBag.noncestr     = noncestr;
                ViewBag.signature    = JsApi.JsToken.Getsignext(sor);



                #endregion

                ViewBag.state = state;


                ViewBag.foruser = state;



                return(View());
            }
            catch (Exception e)
            {
                System.IO.File.AppendAllText(HttpContext.Server.MapPath("") + "waht.txt", e.Message + "     :" + DateTime.Now.ToSafeString() + "\r\n\r\n");
                throw;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 大抽奖
        /// </summary>
        /// <returns></returns>
        public ActionResult LuckDraw(string code)
        {
            #region 缓存用户
            if (Session["Lu"] != null)
            {
                JsApi.LuckDrawUser Lu = Session["Lu"] as JsApi.LuckDrawUser;

                if (Lu.subscribe == 0)
                {
                    string luckdrawuser     = Commen.HttpRequest.GetResponseString("https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + JsApi.JsToken.GetApptoken() + "&openid=" + Lu.openid + "&lang=zh_CN");
                    JavaScriptSerializer js = new JavaScriptSerializer();
                    Lu = js.Deserialize <JsApi.LuckDrawUser>(luckdrawuser);
                }
                ViewBag.lu = Lu;
            }
            else
            {
                if (!string.IsNullOrEmpty(code.ToSafeString()))
                {
                    string post_data                = "appid=" + "wx2c2f2e7b5b62daa1" + "&secret=" + "ed815afc669a9201a6070677d1771166" + "&code=" + code + "&grant_type=authorization_code";
                    string requestData              = tenpay.TenpayUtil.PostXmlToUrl(tenpay.TenpayUtil.getAccess_tokenUrl(), post_data);
                    JavaScriptSerializer js         = new JavaScriptSerializer();                             //实例化一个能够序列化数据的类
                    string             openid       = js.Deserialize <JsApi.WeChartUser>(requestData).openid; //用户的openid
                    string             luckdrawuser = Commen.HttpRequest.GetResponseString("https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + JsApi.JsToken.GetApptoken() + "&openid=" + openid + "&lang=zh_CN");
                    JsApi.LuckDrawUser Lu           = js.Deserialize <JsApi.LuckDrawUser>(luckdrawuser);

                    Session["Lu"] = Lu;

                    ViewBag.lu = Lu;


                    JsApi.Businesslogic.AddWechartUser2(Lu.openid, Lu.nickname, Lu.headimgurl);//入库
                }
                else
                {
                    JsApi.LuckDrawUser Lu = Session["Lu"] as JsApi.LuckDrawUser;

                    if (Lu.subscribe == 0)
                    {
                        string luckdrawuser     = Commen.HttpRequest.GetResponseString("https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + JsApi.JsToken.GetApptoken() + "&openid=" + Lu.openid + "&lang=zh_CN");
                        JavaScriptSerializer js = new JavaScriptSerializer();
                        Lu         = js.Deserialize <JsApi.LuckDrawUser>(luckdrawuser);
                        ViewBag.lu = Lu;
                    }
                }
            }
            #endregion

            #region 签名
            string timestamp = JsApi.JsToken.getTimestamp();
            string noncestr  = JsApi.JsToken.getNoncestr();

            SortedDictionary <string, string> sor = new SortedDictionary <string, string>();
            sor.Add("url", Request.Url.ToString());
            sor.Add("timestamp", timestamp);
            sor.Add("noncestr", noncestr);
            sor.Add("jsapi_ticket", JsApi.JsToken.Getjsapi_ticket());

            ViewBag.jsapi_ticket = JsApi.JsToken.Getjsapi_ticket();
            ViewBag.url          = Request.Url.ToString();
            ViewBag.appid        = tenpay.WeChartConfigItem.appid;
            ViewBag.timestamp    = timestamp;
            ViewBag.noncestr     = noncestr;
            ViewBag.signature    = JsApi.JsToken.Getsignext(sor);



            #endregion


            return(View());

            // return code;
        }