Exemple #1
0
        public static RequestApiResult <WeixinGetJsApiTicketResult> GetJsApiTicket(string appId)
        {
            string accessToken = AccessTokenGetter.Get(appId);
            RequestApiResult <WeixinGetJsApiTicketResult> result = TokenApi.GetJsApiTicket(accessToken);

            if (result.Success == false)
            {
                if (result.Retry)
                {
                    if (result.ApiError.ErrorCode == 40001)
                    {
                        accessToken = AccessTokenGetter.Refresh(appId, accessToken);
                    }

                    result = TokenApi.GetJsApiTicket(accessToken);
                    if (result.Success == false)
                    {
                        _log.Write("TokenApi.GetJsApiTicket 失败",
                                   result.GetDetail(), TraceEventType.Warning);
                    }
                }
                else
                {
                    _log.Write("TokenApi.GetJsApiTicket 失败",
                               result.GetDetail(), TraceEventType.Warning);
                }
            }
            else
            {
                //保存新的jsApiTicket到数据库
                WeixinGetJsApiTicketResult token = result.ApiResult;
                ThirdPartyManager.Instance.UpdateAuthorizerJsApiTicket(
                    appId, token.Ticket, DateTime.Now.AddSeconds(token.ExpiresIn));
            }

            return(result);
        }