public static RequestApiResult <WeixinCreateShortUrlResult> GetShortUrl(DomainContext domainContext, string longUrl)
        {
            string accessToken = domainContext.AccessToken;
            RequestApiResult <WeixinCreateShortUrlResult> result = ShortUrlApi.GetShortUrl(accessToken, longUrl);

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

                    result = ShortUrlApi.GetShortUrl(accessToken, longUrl);
                    if (result.Success == false)
                    {
                        _log.Write("ShortUrlApi.GetShortUrl 失败",
                                   result.GetDetail(), TraceEventType.Warning);
                    }
                }
                else
                {
                    _log.Write("ShortUrlApi.GetShortUrl 失败",
                               result.GetDetail(), TraceEventType.Warning);
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
        public T Api <T>(string name) where T : YunpianApi
        {
            YunpianApi api = null;

            switch (name)
            {
            case ShortUrlApi.ApiName:
                api = new ShortUrlApi();
                break;

            case SignApi.ApiName:
                api = new SignApi();
                break;

            case SmsApi.ApiName:
                api = new SmsApi();
                break;

            case TplApi.ApiName:
                api = new TplApi();
                break;

            case UserApi.ApiName:
                api = new UserApi();
                break;

            case VideoSmsApi.ApiName:
                api = new VideoSmsApi();
                break;

            case VoiceApi.ApiName:
                api = new VoiceApi();
                break;
            }

            api?.Init(_clnt);

            return(api as T);
        }