예제 #1
0
        public IActionResult SpecialOffersList()
        {
            RCLog.Info(this, "test");
            var vm = _context.Articles.Where(x => x.ArticleType == ArticleTypeEnum.Slideshows_7);

            return(View(vm));
        }
예제 #2
0
        public IActionResult CustomerService()
        {
            RCLog.Info(this, "test");
            var vm = _context.Articles.FirstOrDefault(x => x.ArticleType == ArticleTypeEnum.CustomerService_6);

            return(View(nameof(ShowArticle), vm));
        }
예제 #3
0
        public IActionResult NoticeList()
        {
            RCLog.Info(this, "test");
            var vm = _context.Articles.Where(x => x.ArticleType == ArticleTypeEnum.Notice_4);

            return(View(vm));
        }
예제 #4
0
        public ActionResult OAuthCallback(string code, string state, string returnUrl)
        {
            //RCLog.Info(this, "OAuthCallback");
            if (string.IsNullOrEmpty(code))
            {
                return(Content("您拒绝了授权!"));
            }

            if (!state.Contains("|"))
            {
                //这里的state其实是会暴露给客户端的,验证能力很弱,这里只是演示一下
                //实际上可以存任何想传递的数据,比如用户ID
                return(Content("验证失败!请从正规途径进入!1001"));
            }

            //通过,用code换取access_token
            var openIdResult = OAuthApi.GetAccessToken(WeiXinConfig.appId, WeiXinConfig.AppSecret, code);

            if (openIdResult.errcode != ReturnCode.请求成功)
            {
                return(Content("错误:" + openIdResult.errmsg));
            }
            RCLog.Info(this, "OAuthCallback=" + openIdResult.openid);
            HttpContext.Session.SetString("OpenId", openIdResult.openid);//进行登录
            OAuthUserInfo userInfo = OAuthApi.GetUserInfo(openIdResult.access_token, openIdResult.openid);

            HttpContext.Session.SetString("nickname", userInfo.nickname);
            HttpContext.Session.SetString("headimgurl", userInfo.headimgurl);


            //也可以使用FormsAuthentication等其他方法记录登录信息,如:
            //FormsAuthentication.SetAuthCookie(openIdResult.openid,false);
            //RCLog.Info(this, " 结束OAuthCallback");
            return(Redirect(returnUrl));
        }
예제 #5
0
    public static void loadScene(string sceneName)
    {
        RCLog.append("-----------------------------***-------------------------------");
        sceneName = sceneName.Replace("\"", "");
        int index = -1;

        UnityEngine.Debug.Log(sceneName);
        string[] gameFiles = FileManager.getAllScenes();
        //foreach (string s in gameFiles) UnityEngine.Debug.Log(s);
        for (int i = 0; i < gameFiles.Length; i++)
        {
            if (gameFiles[i] == sceneName)
            {
                index = i; break;
            }
        }
        if (index < 0)
        {
            return;
        }
        RCLog.append("checkpoint1");
        Data.reset();
        Data.sceneName = sceneName;
        UnityEngine.GameObject loader = UnityEngine.GameObject.Find("Loader");
        UnityEngine.GameObject gui    = new UnityEngine.GameObject("GUI");
        ObjectInterface        oi     = gui.AddComponent <ObjectInterface>();

        FileManager.loadScene();
        UnityEngine.GameObject.Destroy(gui);
        RCLog.append("checkpoint2");
        loader.GetComponent <Loader>().reload();
        RCLog.append("checkpoint3");
    }
예제 #6
0
 void editorLaunch()
 {
     Data.loadScene(initialScene);
     RCLog.append("checkpoint4");
     unload();
     RCLog.append("checkpoint5");
     SceneManager.LoadScene("editor");
     RCLog.append("checkpoint6");
 }
예제 #7
0
        public IActionResult PromoCode()
        {
            try
            {
                var    openId = HttpContext.Session.GetString("OpenId");
                Menber menber = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == openId);
                var    result = Senparc.Weixin.MP.AdvancedAPIs.QrCodeApi.Create(WeiXinConfig.appId, 2592000, 1222, Senparc.Weixin.MP.QrCode_ActionName.QR_STR_SCENE, menber.Id);

                ViewBag.urlstr = result.url;
            }
            catch (Exception ex)
            {
                RCLog.Error(this, ex.ToString());
            }
            return(View());
        }
예제 #8
0
    void resetSpawnPoint(int index)
    {
        spawnObj = Data.objects[index];
        string code = null;

        if (code == null)
        {
            code = spawnObj.GetComponent <MainObject>().script;
        }

        Compiler.setCode(code);
        Compiler.compile();

        Interpretor _ip = new Interpretor();

        _ip.setICode(Compiler.getICode());
        _ip.init();
        string[] ins = _ip.nextIns();
        while ((ins) != null && ins[0] != Compiler.EOP)
        {
            if (ins[0] == "movement")
            {
                if (ins[1].Replace("\"", "") == "false")
                {
                    Data.movementFlag = false;
                }
            }
            ins = _ip.nextIns();
            RCLog.append(ins[0]);
        }
        Vector3 distAboveGround = new Vector3(0, 3, 0);

        if (Data.vrEnabled)
        {
            VRPlayer.transform.position = spawnObj.transform.position + distAboveGround;
        }
        else
        {
            player.transform.position = spawnObj.transform.position + distAboveGround;
        }
        spawnObj.SetActive(false);
    }
        public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)

        {
            RCLog.Info(this, "进入信息处理");
            var responseMessage = base.CreateResponseMessage <ResponseMessageText>();

            //responseMessage.Content = "您的OpenID是:" + responseMessage.FromUserName+".\r\n您发送的文字是:"+requestMessage.Content;

            if (requestMessage.Content == "ID")
            {
                responseMessage.Content = "您的OpenID是:" + responseMessage.FromUserName;
            }

            if (requestMessage.Content == "天气")
            {
                responseMessage.Content = "抱歉,还未开通此功能!";
            }

            return(responseMessage);
        }
예제 #10
0
        public IActionResult ModifPhoneNumber(ModifPhoneNumberVM model)
        {
            if (ModelState.IsValid)
            {
                var PhoneValidateCode = HttpContext.Session.GetString(model.PhoneNumber);
                var openId            = HttpContext.Session.GetString("OpenId");
                var member            = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == openId);

                if (model.PhoneValidateCode == PhoneValidateCode)
                {
                    member.PhoneNumber = model.PhoneNumber;
                    RCLog.Info(this, $"新手机号码为{ model.PhoneNumber}");
                    _context.Update(member);
                    _context.SaveChanges();
                    return(RedirectToAction("Me", "WeChat"));
                }
            }
            ViewBag.headerUrl = HttpContext.Session.GetString("headimgurl");

            return(View(model));
        }
예제 #11
0
        public async Task <IActionResult> Me()
        {
            MeVM   vm     = new MeVM();
            Menber menber = null;

            ViewBag.headerUrl = HttpContext.Session.GetString("headimgurl");
            try
            {
                var weChatOpenId = HttpContext.Session.GetString("OpenId");
                menber = await _context.Menbers.FirstOrDefaultAsync(x => x.WeChatOpenId == weChatOpenId);

                if (menber == null)
                {
                    menber              = new Menber();
                    menber.Username     = HttpContext.Session.GetString("nickname");
                    menber.WeChatOpenId = weChatOpenId;
                    _context.Add(menber);
                    _context.SaveChanges();
                    ViewBag.headerUrl = HttpContext.Session.GetString("headimgurl");
                    return(RedirectToAction("ModifPhoneNumber", "wechat"));
                }
                else
                {
                    menber.Username = HttpContext.Session.GetString("nickname");
                    _context.Update(menber);
                    _context.SaveChanges();
                }
                vm.Balance     = (decimal)(menber.AccountSum * 0.01);//转化为元
                vm.IntegralSum = menber.IntegralSum;
                vm.Username    = menber.Username;
                vm.PhoneNo     = string.IsNullOrEmpty(menber.PhoneNumber) ? "无" : menber.PhoneNumber;
                vm.OrderSum    = await _context.Orders.Where(x => x.OwnerId == menber.Id).CountAsync();
            }
            catch (Exception ex)
            {
                RCLog.Error(this, ex.ToString());
            }
            return(View(vm));
        }
예제 #12
0
        /// <summary>
        /// JS-SDK支付回调地址(在统一下单接口中设置notify_url)
        /// </summary>
        /// <returns></returns>
        public ActionResult PayNotifyUrl()
        {
            try
            {
                RCLog.Info(this, "支付返回");
                ResponseHandler resHandler = new ResponseHandler(HttpContext);

                string return_code = resHandler.GetParameter("return_code");
                string return_msg  = resHandler.GetParameter("return_msg");

                string res = null;

                resHandler.SetKey(WeiXinConfig.Key);
                //验证请求是否从微信发过来(安全)
                if (resHandler.IsTenpaySign() && return_code.ToUpper() == "SUCCESS")
                {
                    res = "success"; //正确的订单处理
                                     //直到这里,才能认为交易真正成功了,可以进行数据库操作,但是别忘了返回规定格式的消息!
                    string total_fee    = resHandler.GetParameter("total_fee");
                    string out_trade_no = resHandler.GetParameter("out_trade_no");
                    string openid       = resHandler.GetParameter("openid");
                    string package      = resHandler.GetParameter("attach");



                    Menber      owner       = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == openid);
                    AccountInfo accountinfo = _context.AccountInfos.FirstOrDefault(x => x.TradeNo == out_trade_no);

                    accountinfo.BeforeMoney = owner.AccountSum;
                    accountinfo.AfterMoney  = owner.AccountSum + int.Parse(total_fee);
                    accountinfo.OwnerId     = owner.Id;
                    accountinfo.Money       = int.Parse(total_fee);
                    accountinfo.CreateTime  = DateTime.Now;
                    accountinfo.TradeNo     = out_trade_no;
                    accountinfo.TradeName   = package;
                    owner.AccountSum        = accountinfo.AfterMoney;
                    //_context.Add(accountinfo);
                    _context.SaveChanges();
                }
                else
                {
                    res = "wrong";//错误的订单处理
                }

                /* 这里可以进行订单处理的逻辑 */

                //发送支付成功的模板消息

                string xml = string.Format(@"<xml>
<return_code><![CDATA[{0}]]></return_code>
<return_msg><![CDATA[{1}]]></return_msg>
</xml>", return_code, return_msg);
                RCLog.Info(this, xml);
                return(Content(xml, "text/xml"));
            }
            catch (Exception ex)
            {
                RCLog.Error(this, $"发生错误{ex.ToString()}");
                throw;
            }
        }
예제 #13
0
        public ActionResult JsApi(string topupItemId = "2", string bodytext = "微信充值")
        {
            try
            {
                //RCLog.Info(this, "进入JsApi");
                var topupItem = _context.TopupItems.FirstOrDefault(z => z.Id == topupItemId);
                if (topupItem == null)
                {
                    return(Content("商品信息不存在,或非法进入!1002"));
                }


                //var openId = User.Identity.Name;
                var openId = HttpContext.Session.GetString("OpenId");

                string sp_billno = DateTime.Now.Ticks.ToString();

                var timeStamp = TenPayV3Util.GetTimestamp();
                var nonceStr  = TenPayV3Util.GetNoncestr();

                var body        = bodytext;
                var price       = topupItem.Price;//单位:分
                var xmlDataInfo = new TenPayV3UnifiedorderRequestData(WeiXinConfig.appId, WeiXinConfig.MchId, body, sp_billno, price, HttpContext.UserHostAddress()?.ToString(), WeiXinConfig.TenPayV3Notify, TenPayV3Type.JSAPI, openId, WeiXinConfig.Key, nonceStr);

                var result = TenPayV3.Unifiedorder(xmlDataInfo); //调用统一订单接口
                RCLog.Info(this, "订单号:" + result.prepay_id);     //JsSdkUiPackage jsPackage = new JsSdkUiPackage(WeiXinConfig.appId, timeStamp, nonceStr,);
                var package = string.Format("prepay_id={0}", result.prepay_id);
                RCLog.Info(this, $"sp_billno={sp_billno}");
                RCLog.Info(this, $"price={price}");

                //临时记录订单信息,留给退款申请接口测试使用
                //HttpContext.Session.SetString("BillNo", sp_billno);
                //HttpContext.Session.SetString("BillFee", price.ToString());

                AccountInfo accountinfo = new AccountInfo();

                accountinfo.CreateTime = DateTime.Now;
                accountinfo.TradeNo    = sp_billno;
                accountinfo.TradeName  = package;
                _context.Add(accountinfo);
                _context.SaveChanges();


                return(Json(new
                {
                    appId = WeiXinConfig.appId,
                    timeStamp = timeStamp,
                    nonceStr = nonceStr,
                    package = package,
                    paySign = TenPayV3.GetJsPaySign(WeiXinConfig.appId, timeStamp, nonceStr, package, WeiXinConfig.Key)
                }));
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                msg += "<br>" + ex.StackTrace;
                msg += "<br>==Source==<br>" + ex.Source;

                if (ex.InnerException != null)
                {
                    msg += "<br>===InnerException===<br>" + ex.InnerException.Message;
                }
                return(Content(msg));
            }
        }