GetTicket() public static method

获取调用微信JS接口的临时票据
public static GetTicket ( string appId, string secret, string type = "jsapi" ) : JsApiTicketResult
appId string
secret string
type string 默认为jsapi,当作为卡券接口使用时,应当为wx_card
return Senparc.Weixin.MP.Entities.JsApiTicketResult
Exemplo n.º 1
0
        /// <summary>
        /// 获取可用Ticket
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="getNewTicket">是否强制重新获取新的Ticket</param>
        /// <returns></returns>
        public static JsApiTicketResult GetJsApiTicketResult(string appId, bool getNewTicket = false)
        {
            if (!CheckRegistered(appId))
            {
                throw new UnRegisterAppIdException(null, "此appId尚未注册,请先使用JsApiTicketContainer.Register完成注册(全局执行一次即可)!");
            }

            var accessTokenBag = (JsApiTicketBag)ItemCollection[appId];

            lock (accessTokenBag.Lock)
            {
                if (getNewTicket || accessTokenBag.JsApiTicketExpireTime <= DateTime.Now)
                {
                    //已过期,重新获取
                    accessTokenBag.JsApiTicketResult     = CommonApi.GetTicket(accessTokenBag.AppId, accessTokenBag.AppSecret);
                    accessTokenBag.JsApiTicketExpireTime = DateTime.Now.AddSeconds(accessTokenBag.JsApiTicketResult.expires_in);
                }
            }
            return(accessTokenBag.JsApiTicketResult);
        }
        /// <summary>
        /// 获取可用Ticket
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="getNewTicket">是否强制重新获取新的Ticket</param>
        /// <returns></returns>
        public static JsApiTicketResult GetTicketResult(string appId, bool getNewTicket = false)
        {
            if (!JsApiTicketCollection.ContainsKey(appId))
            {
                throw new WeixinException("此appId尚未注册,请先使用JsApiTicketContainer.Register完成注册(全局执行一次即可)!");
            }

            var accessTicketBag = JsApiTicketCollection[appId];

            lock (accessTicketBag.Lock)
            {
                if (getNewTicket || accessTicketBag.ExpireTime <= DateTime.Now)
                {
                    //已过期,重新获取
                    accessTicketBag.JsApiTicketResult = CommonApi.GetTicket(accessTicketBag.AppId, accessTicketBag.AppSecret);
                    accessTicketBag.ExpireTime        = DateTime.Now.AddSeconds(accessTicketBag.JsApiTicketResult.expires_in);
                }
            }
            return(accessTicketBag.JsApiTicketResult);
        }