public void ContainerTest() { //注册 JsApiTicketContainer.Register(base._corpId, base._corpSecret); //获取Ticket完整结果(包括当前过期秒数) var ticketResult = JsApiTicketContainer.GetTicketResult(base._corpId, base._corpSecret); Assert.IsNotNull(ticketResult); Console.WriteLine(ticketResult.ticket); //只获取Ticket字符串 var ticket = JsApiTicketContainer.GetTicket(base._corpId, base._corpSecret); Assert.AreEqual(ticketResult.ticket, ticket); //getNewTicket { ticket = JsApiTicketContainer.TryGetTicket(base._corpId, base._corpSecret, false); Assert.AreEqual(ticketResult.ticket, ticket); ticket = JsApiTicketContainer.TryGetTicket(base._corpId, base._corpSecret, true); Assert.AreEqual(ticketResult.ticket, ticket);//现在微信服务器有Ticket缓存,短时间内一致 Console.WriteLine(ticketResult.ticket); } }
/// <summary> /// 若不管用,请在公众号官方后台---功能设置----js接口安全域名 设置 /// 初始化微信分享 /// </summary> /// <param name="wxModel"></param> /// <param name="fxUrl">分享的目标url,如果传过来的值为空字符串或者为null则默认是当前的网址</param> public void jssdkInit(Model.wx_userweixin wxModel, string fxUrl) { fxModel.appId = wxModel.AppId; fxModel.timestamp = TenPayV3Util.GetTimestamp(); fxModel.nonceStr = TenPayV3Util.GetNoncestr(); fxModel.thisUrl = HttpContext.Current.Request.Url.ToString(); // fxModel.fxUrl = MyCommFun.getWebSite() + "/weixin/huodong/index.aspx"; if (fxUrl == null || fxUrl.Trim() == "") { fxModel.fxUrl = fxModel.thisUrl; } else { fxModel.fxUrl = fxUrl; } JsApiTicketContainer.Register(wxModel.AppId, wxModel.AppSecret); var ticketResult = JsApiTicketContainer.GetTicketResult(wxModel.AppId); //获取Ticket完整结果(包括当前过期秒数) // 这里参数的顺序要按照 key 值 ASCII 码升序排序 string rawstring = "jsapi_ticket=" + ticketResult.ticket + "&noncestr=" + fxModel.nonceStr + "×tamp=" + fxModel.timestamp + "&url=" + fxModel.thisUrl + ""; fxModel.signature = SHA1_Hash(rawstring); }//end:function
/// <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 void ContainerTest() { //注册 JsApiTicketContainer.Register(base._appId, base._appSecret); //获取Ticket完整结果(包括当前过期秒数) var ticketResult = JsApiTicketContainer.GetTicketResult(base._appId); Assert.IsNotNull(ticketResult); //只获取Ticket字符串 var ticket = JsApiTicketContainer.GetTicket(base._appId); Assert.AreEqual(ticketResult.ticket, ticket); //getNewTicket { ticket = JsApiTicketContainer.TryGetTicket(base._appId, base._appSecret, false); Assert.AreEqual(ticketResult.ticket, ticket); ticket = JsApiTicketContainer.TryGetTicket(base._appId, base._appSecret, true); Assert.AreNotEqual(ticketResult.ticket, ticket); } }