コード例 #1
0
        public string GetJsApiTicket()
        {
            if (string.IsNullOrEmpty(mJsApiTicket) || mJsApiTicketExpiredTime <= DateTime.Now)
            {
                JsApiTicketGetResponse response = null;

                DateTime timenow = DateTime.MinValue;
                int      retry   = 0;
                do
                {
                    timenow = DateTime.Now;
                    IMpClient             mpClient = new MpClient();
                    JsApiTicketGetRequest request  = new JsApiTicketGetRequest()
                    {
                        AppIdInfo = new AppIdInfo()
                        {
                            AppID = mAppId, AppSecret = mAppSecret
                        },
                        AccessToken = this.GetAccessToken(),
                    };
                    response = mpClient.Execute(request);

                    if (!RefreshAccessToken(response, request.AccessToken))
                    {
                        break;
                    }
                    retry++;
                } while (retry < 2 && response.IsError);

                if (response.IsError)
                {
                    string msg = string.Format("获取JsApiTicket失败。 Code:{0},Msg:{1}", response.ErrInfo.ErrCode, response.ErrInfo.ErrMsg);
                    LogHelper.WriteError(LogModule, msg, null);
                    throw new ApplicationException(msg);
                }
                else
                {
                    mJsApiTicket            = response.Ticket.Ticket;
                    mJsApiTicketExpiredTime = timenow.AddSeconds(response.Ticket.ExpiresIn).AddMinutes(-10);
                }
            }
            return(mJsApiTicket);
        }
コード例 #2
0
 public ApiResult <JsApiTicketGetResponse> Execute(JsApiTicketGetRequest request)
 {
     return(Execute <JsApiTicketGetRequest, JsApiTicketGetResponse>("/cgi/jsApiTicket/get", request));
 }