예제 #1
0
        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);
            }
        }
예제 #2
0
파일: WeiXinPage.cs 프로젝트: yidane/51wine
        /// <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 + "&timestamp=" + fxModel.timestamp + "&url=" + fxModel.thisUrl + "";

            fxModel.signature = SHA1_Hash(rawstring);
        }//end:function
예제 #3
0
파일: WxFO.cs 프로젝트: 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);
        }
        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);
            }
        }