Example #1
0
        public static ShareInfo GetPayInfo(string prepayid)
        {
            var shareInfo = new ShareInfo();

            //检查是否已经注册jssdk
            if (!JsApiTicketContainer.CheckRegistered(ConfigHelper.WeChatAppId))
            {
                JsApiTicketContainer.Register(ConfigHelper.WeChatAppId, ConfigHelper.WeChatSecret);
            }
            JsApiTicketResult jsApiTicket = JsApiTicketContainer.GetJsApiTicketResult(ConfigHelper.WeChatAppId);
            JSSDKHelper       jssdkHelper = new JSSDKHelper();

            shareInfo.Ticket    = jsApiTicket.ticket;
            shareInfo.CorpId    = ConfigHelper.WeChatAppId.ToLower();
            shareInfo.Noncestr  = JSSDKHelper.GetNoncestr().ToLower();
            shareInfo.Timestamp = JSSDKHelper.GetTimestamp().ToLower();
            shareInfo.Package   = "prepay_id=" + prepayid.ToLower();

            RequestHandler requestHandler = new RequestHandler(HttpContext.Current);

            requestHandler.SetParameter("appId", shareInfo.CorpId);
            requestHandler.SetParameter("timeStamp", shareInfo.Timestamp);
            requestHandler.SetParameter("nonceStr", shareInfo.Noncestr);
            requestHandler.SetParameter("package", shareInfo.Package);
            requestHandler.SetParameter("signType", "MD5");

            requestHandler.SetKey(tenPayV3Info.Key);
            requestHandler.CreateMd5Sign();
            requestHandler.GetRequestURL();
            requestHandler.CreateSHA1Sign();
            shareInfo.PaySign = (requestHandler.GetAllParameters()["sign"]).ToString();
            return(shareInfo);
        }
Example #2
0
        private void GetSingInfo(HttpContext context)
        {
            try
            {
                var list      = new List <object>();
                var appid     = WebConfigurationManager.AppSettings["wxappid"].ToString();
                var appsecret = WebConfigurationManager.AppSettings["wxsecret"].ToString();
                var timeStamp = JSSDKHelper.GetTimestamp();
                var nonceStr  = JSSDKHelper.GetNoncestr();
                var url       = context.Request.Params["urlinfo"];
                if (!JsApiTicketContainer.CheckRegistered(appid))
                {
                    JsApiTicketContainer.Register(appid, appsecret);
                }
                string      jsapiticket = JsApiTicketContainer.GetTicket(appid);
                JSSDKHelper cd          = new JSSDKHelper();
                var         signature   = cd.GetSignature(jsapiticket, nonceStr, timeStamp, url);
                list.Add(new { appid1 = appid, timeStamp1 = timeStamp, nonceStr1 = nonceStr, signature1 = signature });

                string jsonstrlist = JsonHelper.GetJsonString(new jsonResult {
                    code = "succ", result = list, count = list.Count
                });
                context.Response.Write(jsonstrlist);
            }
            catch (Exception)
            {
                string jsonstrlist = JsonHelper.GetJsonString(new jsonResult {
                    code = "succ", result = "", count = 0
                });
                context.Response.Write(jsonstrlist);
            }
        }
Example #3
0
File: WxFO.cs Project: Luyingjin/Qy
        /// <summary>
        /// 获取jssdk认证令牌
        /// </summary>
        /// <param name="QyID"></param>
        /// <returns></returns>
        public string GetJsApiTicket(string QyID, bool GetNewToken = false)
        {
            //var sss = GetAccessToken(QyID);
            LogWriter.Info("GetJsApiTicket:1");
            var token   = "";
            var account = CacheHelper.Get(string.Format("WxAccount{0}", QyID)) as QyAccount;

            if (account == null)
            {
                LogWriter.Info("GetJsApiTicket:2");
                account = entities.QyAccount.Where(c => c.ID == QyID && c.IsDelete == 0).FirstOrDefault();
                CacheHelper.Set(string.Format("WxAccount{0}", QyID), account);
            }
            if (account != null)
            {
                LogWriter.Info("GetJsApiTicket:3");
                if (!JsApiTicketContainer.CheckRegistered(account.CorpID + "@" + account.CorpSecret) || GetNewToken)
                {
                    LogWriter.Info("GetJsApiTicket:4");
                    JsApiTicketContainer.Register(account.CorpID, account.CorpSecret);
                }
                var result = JsApiTicketContainer.GetTicketResult(account.CorpID + "@" + account.CorpSecret, GetNewToken);
                LogWriter.Info("GetJsApiTicket:5");
                if (result.ticket != account.JsApiTicket)
                {
                    LogWriter.Info("GetJsApiTicket:6");
                    account                       = entities.QyAccount.Where(c => c.ID == QyID && c.IsDelete == 0).FirstOrDefault();
                    account.JsApiTicket           = result.ticket;
                    account.JsApiTicketExpireTime = DateTime.Now.AddSeconds(result.expires_in);
                    entities.SaveChanges();
                    CacheHelper.Set(string.Format("WxAccount{0}", QyID), account);
                }
                token = account.JsApiTicket;
            }
            return(token);
        }
Example #4
0
        public int InitViewBag(SessionInfo sessionInfo, out string strError)
        {
            strError = "";

            ViewBag.AppName  = sessionInfo.gzh.appNameCN;
            ViewBag.weixinId = sessionInfo.WeixinId;

            if (sessionInfo.Active != null)
            {
                //  取出上次记住的图书推荐栏目
                if (Request.Path == "/Library/Book")
                {
                    ViewBag.remeberBookSubject = sessionInfo.Active.bookSubject;
                }

                //设到ViewBag里
                string userName     = "";
                string userNameInfo = "";
                if (sessionInfo.Active.type == WxUserDatabase.C_Type_Worker)
                {
                    userName         = sessionInfo.Active.userName;
                    userNameInfo     = userName;
                    ViewBag.isPatron = 0;
                }
                else
                {
                    userName         = sessionInfo.Active.readerBarcode;
                    userNameInfo     = sessionInfo.Active.readerName;// +"["+sessionInfo.Active.readerBarcode+"]";
                    ViewBag.isPatron = 1;
                }
                ViewBag.userName     = userName;
                ViewBag.userNameInfo = userNameInfo;
                ViewBag.userId       = sessionInfo.Active.id;

                string libName = sessionInfo.Active.libName;//sessionInfo.CurrentLib.Entity.libName;
                if (string.IsNullOrEmpty(sessionInfo.Active.bindLibraryCode) == false)
                {
                    libName = sessionInfo.Active.bindLibraryCode;
                }

                string libId = sessionInfo.Active.libId;

                ViewBag.LibName     = "[" + libName + "]";
                ViewBag.PureLibName = libName;
                ViewBag.LibId       = libId;
                ViewBag.LibraryCode = sessionInfo.Active.bindLibraryCode; //这里用绑定的图书馆 20180313

                LibEntity libEntity = sessionInfo.CurrentLib.Entity;      //dp2WeiXinService.Instance.GetLibById(libId);
                if (libEntity != null && libEntity.state == "到期" &&
                    Request.Path.Contains("/Patron/SelectLib") == false)  //选择图书馆界面除外
                {
                    strError = "服务已到期,请联系图书馆工作人员。";
                    return(-1);
                }

                ViewBag.showPhoto = sessionInfo.Active.showPhoto;
                ViewBag.showCover = sessionInfo.Active.showCover;

                ViewBag.LibState = sessionInfo.CurrentLib.State;
                if (sessionInfo.CurrentLib.State == LibraryManager.C_State_Hangup)  //checkLibState == true &&
                {
                    string warn = LibraryManager.GetLibHungWarn(sessionInfo.CurrentLib);
                    if (string.IsNullOrEmpty(warn) == false)
                    {
                        strError = warn;
                        return(-1);
                    }
                }
            }

            // 书目查询 与 借还 使用 JSSDK
            try
            {
                if (Request.Path.Contains("/Biblio/Index") == true ||
                    Request.Path.Contains("/Library/Charge2") == true)
                {
                    GzhCfg gzh    = sessionInfo.gzh;
                    bool   bJsReg = JsApiTicketContainer.CheckRegistered(gzh.appId);
                    // 注意这里有时异常
                    JsSdkUiPackage package = JSSDKHelper.GetJsSdkUiPackage(gzh.appId,
                                                                           gzh.secret,
                                                                           Request.Url.AbsoluteUri);//http://localhost:15794/Library/Charge  //http://www.dp2003.com/dp2weixin/Library/Charge
                    ViewData["AppId"]     = gzh.appId;
                    ViewData["Timestamp"] = package.Timestamp;
                    ViewData["NonceStr"]  = package.NonceStr;
                    ViewData["Signature"] = package.Signature;
                }
            }
            catch (Exception ex)
            { }

            return(0);
        }
Example #5
0
        /// <summary>
        /// 根据session信息初始化界面信息
        /// </summary>
        /// <param name="sessionInfo"></param>
        /// <param name="strError"></param>
        /// <returns>
        /// -1 出错
        /// 0 成功
        /// </returns>
        private int InitViewBag(SessionInfo sessionInfo,
                                bool isCheckLibState,
                                out string strError)
        {
            strError = "";

            // 书目查询 与 借还 使用 JSSDK
            try
            {
                //if (Request.Path.Contains("/Biblio/Index") == true
                //    || Request.Path.Contains("/Library/Charge2") == true
                //    || Request.Path.Contains("/Account/ScanQRCodeBind") == true)
                //{
                GzhCfg gzh    = sessionInfo.gzh;
                bool   bJsReg = JsApiTicketContainer.CheckRegistered(gzh.appId);
                // 注意这里有时异常
                JsSdkUiPackage package = JSSDKHelper.GetJsSdkUiPackage(gzh.appId,
                                                                       gzh.secret,
                                                                       Request.Url.AbsoluteUri);//http://localhost:15794/Library/Charge  //http://www.dp2003.com/dp2weixin/Library/Charge
                ViewData["AppId"]     = gzh.appId;
                ViewData["Timestamp"] = package.Timestamp;
                ViewData["NonceStr"]  = package.NonceStr;
                ViewData["Signature"] = package.Signature;
                //}
            }
            catch (Exception ex)
            { }


            ViewBag.AppName  = sessionInfo.gzh.appNameCN;
            ViewBag.weixinId = sessionInfo.WeixinId;

            // 没有当前帐户时,直接返回
            if (sessionInfo.ActiveUser == null)
            {
                return(0);
            }


            //=====
            //  取出上次记住的图书推荐栏目
            if (Request.Path == "/Library/Book")
            {
                ViewBag.remeberBookSubject = sessionInfo.ActiveUser.bookSubject;
            }

            //设到ViewBag里,当前帐户信息
            string userName     = "";
            string userNameInfo = "";

            if (sessionInfo.ActiveUser.type == WxUserDatabase.C_Type_Worker)
            {
                userName         = sessionInfo.ActiveUser.userName;
                userNameInfo     = userName;
                ViewBag.isPatron = 0;
            }
            else
            {
                userName         = sessionInfo.ActiveUser.readerBarcode;
                userNameInfo     = sessionInfo.ActiveUser.readerName;// +"["+sessionInfo.Active.readerBarcode+"]";
                ViewBag.isPatron = 1;
            }
            ViewBag.userName     = userName;
            ViewBag.userNameInfo = userNameInfo;
            ViewBag.userId       = sessionInfo.ActiveUser.id;

            // 2020-2-29 在配置文件中增加读者库配置
            string patronDbName = "";
            string libName      = sessionInfo.ActiveUser.libName;//sessionInfo.CurrentLib.Entity.libName;
            // 2019/05/06 显示的名称依据libcfg.xml的配置
            LibModel libCfg = dp2WeiXinService.Instance._areaMgr.GetLibCfg(sessionInfo.ActiveUser.libId,
                                                                           sessionInfo.ActiveUser.bindLibraryCode);

            if (libCfg != null)
            {
                libName      = libCfg.name;
                patronDbName = libCfg.patronDbName;
            }
            ViewBag.PatronDbName = patronDbName;

            ViewBag.LibName     = "[" + libName + "]";
            ViewBag.PureLibName = libName;
            ViewBag.LibId       = sessionInfo.ActiveUser.libId;
            ViewBag.LibraryCode = sessionInfo.ActiveUser.bindLibraryCode;  //这里用绑定的图书馆 20180313

            // 到期的图书馆应该不会显示出来,所以这一段后面可以删除 2020-2-29
            {
                LibEntity libEntity = sessionInfo.CurrentLib.Entity;          //dp2WeiXinService.Instance.GetLibById(libId);
                if (libEntity != null && libEntity.state == "到期" &&
                    Request.Path.Contains("/Patron/SelectOwnerLib") == false) //选择图书馆界面除外
                {
                    strError = "服务已到期,请联系图书馆工作人员。";
                    return(-1);
                }
            }

            ViewBag.LibState = sessionInfo.CurrentLib.IsHangup.ToString();
            if (isCheckLibState == true && sessionInfo.CurrentLib.IsHangup == true)
            {
                // 获取服务器不通文字描述
                string warn = LibraryManager.GetLibHungWarn(sessionInfo.CurrentLib, true);
                if (string.IsNullOrEmpty(warn) == false)
                {
                    strError = warn;
                    return(-1);
                }
            }

            return(0);
        }