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); }
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); } }
/// <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); }
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); }
/// <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); }