Exemplo n.º 1
0
        public void GetAccessTokenCore()
        {
            var appid = new AppIdentication("wx7fc05579394bd02c", "26f8f072c53e97d0033e3589e7de4e84");
            var request = new AccessTokenRequest(appid);
            IApiClient client = new DefaultApiClient();
            var response = client.Execute(request);

            Console.WriteLine(response.ToString());
        }
Exemplo n.º 2
0
        public void ErrorMessageTest()
        {
            var appid = new AppIdentication("wx7fc05579394bd02c", "26f8f072c53e97d0033e3589e7de4e84");
            var request = new AccessTokenRequest(appid);
            var mock = new Mock<DefaultApiClient>();
            mock.Setup(d => d.DoExecute(request)).Returns("{\"errcode\":40013,\"errmsg\":\"invalid appid\"}");

            var testobj = mock.Object.Execute(request);
            Console.WriteLine(testobj);
        }
Exemplo n.º 3
0
        public void MatchMessageTest()
        {
            var appid = new AppIdentication("wx7fc05579394bd02c", "26f8f072c53e97d0033e3589e7de4e84");
            var request = new AccessTokenRequest(appid);
            var mock = new Mock<DefaultApiClient>();
            mock.Setup(d => d.DoExecute(request)).Returns("{\"access_token\":\"ACCESS_TOKEN\",\"expires_in\":7200}");

            var testobj = mock.Object.Execute(request);
            Console.WriteLine(testobj);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Authenticates with GitLab API using user credentials.
        /// </summary>
        public Task <AccessTokenResponse> LoginAsync(string username, string password, string scope = "api")
        {
            Guard.NotEmpty(username, nameof(username));
            Guard.NotEmpty(password, nameof(password));
            var accessTokenRequest = new AccessTokenRequest
            {
                GrantType = "password",
                Scope     = scope,
                Username  = username,
                Password  = password
            };

            return(_httpFacade.LoginAsync(accessTokenRequest));
        }
        public async Task CreateAccessTokenAsync_ForValidCredentials_ReturnsAccessToken(BraspagAuthClient sut)
        {
            var request = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "b7554867-c69a-4fd2-b059-40c08f6f924a",
                ClientSecret = "9tV4mICf6YmKiRkfPce8+jHc4M2hLGgBdMCxnlj3LDY="
            };

            var response = await sut.CreateAccessTokenAsync(request);

            Assert.Equal(HttpStatusCode.OK, response.HttpStatus);
            Assert.NotNull(response.Token);
        }
        public AccessTokenResponse CreateAccessTokenResponse(AccessTokenRequest tokenRequest, NancyContext context)
        {
            this.authorizationTokenStore.Remove(context.CurrentUser.UserName);

            var token =
                string.Concat("access-token-", Guid.NewGuid().ToString("D"));

            this.accessTokenStore.Store(context.CurrentUser.UserName, token);

            return(new AccessTokenResponse
            {
                Access_Token = token
            });
        }
Exemplo n.º 7
0
        public AccessTokenResponse RequestAccessToken(AccessTokenRequest payload)
        {
            Signature signatureService = GetSignatureService();
            string    messageSignature = signatureService.Sign(JsonConvert.SerializeObject(payload));

            return(authApi.AuthenticationAccessTokensPost(
                       CONTENT_TYPE,
                       signatureService.ClientRequestId,
                       GetApiKey(),
                       signatureService.TimeStamp,
                       payload,
                       messageSignature
                       ));
        }
Exemplo n.º 8
0
        public static PublicAccount RegetAccessToken(PublicAccount ato)
        {
            AccessTokenRequest atr = new AccessTokenRequest();
            atr.PublicAccountInfo = ato;

            var ret = atr.GetResponse();

            ato.LastUpdateTime = DateTime.Now;
            ato.AccessToken = ret.Access_token;

            tokens[ato.OriginalId] = ato;

            return ato;
        }
Exemplo n.º 9
0
        /// <summary>
        /// The OAuth 2.0 token endpoint.
        /// </summary>
        /// <returns>The response to the Client.</returns>
        public string Post(AccessTokenRequest tokenRequest)
        {
            // only 'refresh' is implemented
            if (tokenRequest.grant_type == GRANT_REFRESH)
            {
                string refreshToken = this.Request.RequestUri.ParseQueryString()["refresh_token"];

                AppAuthorization appAuth = OAuthTokenUtility.ValidateRefreshToken(tokenRequest.app_id, tokenRequest.app_secret, refreshToken);

                if (appAuth == null)
                {
                    // invalid request
                    return(Newtonsoft.Json.JsonConvert.SerializeObject(new ErrorMessage()
                    {
                        Type = "OAuthException", Message = "could not grant refreshed access token. please check your client id, client secret, and refresh token id (did it expire?)"
                    }));
                }
                else
                {
                    // create new access token
                    AppAuthorization newAppAuth = OAuthTokenUtility.AccessTokenRefresh(appAuth);

                    return(Newtonsoft.Json.JsonConvert.SerializeObject(new AccessTokenMessage()
                    {
                        access_token = newAppAuth.AuthToken,
                        refresh_token = newAppAuth.RefreshToken,
                        token_type = "bearer",
                        expiration_utc = newAppAuth.AuthTokenExpiration,
                        scope = newAppAuth.Scope
                    }));
                }
            }

            if (tokenRequest.grant_type == GRANT_ACCESS)
            {
                // requesting an authorization token using a short lived auth code
                var authCode = this.Request.RequestUri.ParseQueryString()["code"];

                return(Newtonsoft.Json.JsonConvert.SerializeObject(new ErrorMessage()
                {
                    Type = "OAuthException", Message = "new access tokens not granted by this server"
                }));
            }

            return(Newtonsoft.Json.JsonConvert.SerializeObject(new ErrorMessage()
            {
                Type = "OAuthException", Message = "not a valid grant_type"
            }));
        }
Exemplo n.º 10
0
        public async Task <AccessTokenResponse> LoginAsync(AccessTokenRequest accessTokenRequest)
        {
            // ReSharper disable once InconsistentlySynchronizedField
            string url = $"{_httpClient.BaseAddress.GetLeftPart(UriPartial.Authority)}/oauth/token";
            var    accessTokenResponse = await _requestor.Post <AccessTokenResponse>(url, accessTokenRequest);

            if (_httpClient.DefaultRequestHeaders.Contains(PrivateToken))
            {
                _httpClient.DefaultRequestHeaders.Remove(PrivateToken);
            }

            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessTokenResponse.AccessToken);

            return(accessTokenResponse);
        }
Exemplo n.º 11
0
        /// <summary>
        ///   The Access Token is used in all following API calls as authentication token The Access Token is used in all following
        ///   API calls as authentication token
        /// </summary>
        /// <exception cref="IO.Swagger.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="request"> (optional)</param>
        /// <returns>ApiResponse of AccessTokenResponse</returns>
        public ApiResponse <AccessTokenResponse> AccessTokenRequestWithHttpInfo(AccessTokenRequest request)
        {
            var    localVarPath         = "/create/accesstoken";
            var    localVarPathParams   = new Dictionary <string, string>();
            var    localVarQueryParams  = new Dictionary <string, string>();
            var    localVarHeaderParams = new Dictionary <string, string>(Configuration.DefaultHeader);
            var    localVarFormParams   = new Dictionary <string, string>();
            var    localVarFileParams   = new Dictionary <string, FileParameter>();
            object localVarPostBody     = null;

            // to determine the Content-Type header
            var localVarHttpContentTypes = new [] { "application/json" };
            var localVarHttpContentType  = Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);

            // to determine the Accept header
            var localVarHttpHeaderAccepts = new [] { "application/json" };
            var localVarHttpHeaderAccept  = Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);

            if (localVarHttpHeaderAccept != null)
            {
                localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
            }

            localVarPostBody = Configuration.ApiClient.Serialize(request); // http body (model) parameter

            // make the HTTP request
            var localVarResponse = (IRestResponse)Configuration.ApiClient.CallApi
                                   (
                localVarPath, Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams,
                localVarFileParams, localVarPathParams, localVarHttpContentType
                                   );

            var localVarStatusCode = (int)localVarResponse.StatusCode;

            var exception = ExceptionFactory?.Invoke("AccessTokenRequestaccesstokenPost", localVarResponse);

            if (exception != null)
            {
                throw exception;
            }

            return(new ApiResponse <AccessTokenResponse>
                   (
                       localVarStatusCode,
                       localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()),
                       (AccessTokenResponse)Configuration.ApiClient.Deserialize(localVarResponse, typeof(AccessTokenResponse))
                   ));
        }
        public async Task CreateAccessTokenAsync_WhenClientSecretIsInvalid_ReturnsInvalidClientError(BraspagAuthClient sut)
        {
            var request = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "b7554867-c69a-4fd2-b059-40c08f6f924a",
                ClientSecret = "43VtT15I5l7BocriFWPAlhTjd55VupXq5jVVbu99999="
            };

            var response = await sut.CreateAccessTokenAsync(request);

            Assert.Equal(HttpStatusCode.BadRequest, response.HttpStatus);
            Assert.Equal("invalid_client", response.Error);
            Assert.NotNull(response.Error);
            Assert.NotNull(response.ErrorDescription);
        }
        private void GetAccessToken()
        {
            SejamRegistrar     authorizer = new SejamRegistrar();
            AccessTokenRequest request    =
                new AccessTokenRequest(
                    SejamRegistrarTests.URL_ACCESS_TOKEN,
                    SejamRegistrarTests.USERNAME,
                    SejamRegistrarTests.PASSWORD);
            var accessToken = authorizer.GetAccessToken(request);

            if (accessToken != null)
            {
                this.aToken      = accessToken;
                this.lastGetTime = DateTime.Now;
            }
        }
Exemplo n.º 14
0
        public async Task <AccessToken> GetAccessTokenAsync(AccessTokenRequest request)
        {
            //TODO Implement methods for token validation and getting role - introduce SINGLE RESPONSIBILITY
            var userRole = await _tokensRepository.GetTokenAsync(request.RefreshToken);

            if (userRole.IsNullOrEmpty)
            {
                throw new ArgumentException(nameof(request.RefreshToken));
            }


            _claims.Add("role", userRole.ToString());
            var result = _accessTokenProvider.GetAccessToken(DateTime.Now.AddHours(_config.AccessTokenExpMinutes), _claims);

            return(result);
        }
Exemplo n.º 15
0
        private JObject GetAuthRequestBody(AccessTokenRequest accessTokenRequest)
        {
            JObject authRequestBody = new JObject();

            authRequestBody.Add("client_id", accessTokenRequest.ClientId);
            authRequestBody.Add("client_secret", accessTokenRequest.ClientSecret);
            authRequestBody.Add("grant_type", accessTokenRequest.GrantType);
            authRequestBody.Add("account_id", accessTokenRequest.AccountId);

            if (!string.IsNullOrEmpty(accessTokenRequest.Scope))
            {
                authRequestBody.Add("scope", accessTokenRequest.Scope);
            }

            return(authRequestBody);
        }
Exemplo n.º 16
0
        public async Task <AccessToken> GetAccessTokenAsync(AccessTokenRequest request)
        {
            //TODO Refactor
            var userRole = await _tokensRepository.GetUserRole(request.RefreshToken);

            if (userRole.IsNullOrEmpty)
            {
                throw new ArgumentException(nameof(request.RefreshToken));
            }


            _claims.Add("role", userRole.ToString());
            var result = _accessTokenProvider.GetAccessToken(DateTime.Now.AddHours(_config.AccessTokenExpMinutes), _claims);

            return(result);
        }
Exemplo n.º 17
0
        static async Task Main()
        {
            // These credentials are a test account.
            // I don't care about the data.
            // of course, you would provide your own.
            var httpClient   = new HttpClient(new HttpLogger());
            var clientId     = ClientId("tj7a3rtbs5dmsz2sbwxx3phd");
            var clientSecret = ClientSecret("EEecE6bBYz");
            var redirectUri  = RedirectUri("https://localhost");

            // These are meant to be created once and used throughout your application.
            // Inject into your DI container, or whatever your preference.
            AccessTokenRequest  requestAccessToken  = AccessTokenRequest(httpClient, clientId, clientSecret, redirectUri);
            RefreshTokenRequest requestRefreshToken = RefreshTokenRequest(httpClient, clientId, clientSecret);

            /*
             * ===============
             * STEP 1
             * ===============
             * Infusionsoft does not provide a way for an application to automatically authenticate.
             * They currently require a user's consent.
             *
             * To grab an access code from infusionsoft, complete the following steps.
             * 1. Point your browser to:
             *     https://accounts.infusionsoft.com/app/oauth/authorize?client_id=tj7a3rtbs5dmsz2sbwxx3phd&response_type=code&redirect_uri=https://localhost
             * 2. Click the "Allow" button
             * 3. Copy the code that is returned in the adddress bar of your browser
             * 4. Paste the code below in the AccessCode
             * ===============
             */

            // Utilize cache so we can run this program many times without the above hassle.
            // This is not part of the core library.
            var authorization = await AuthorizationInfoFromCache()
                                .IfNoneAsync(() =>
                                             requestAccessToken(AccessCode("PASTE CODE HERE"))
                                             .Map(CacheAuthorizationInfo)
                                             );

            var client = new InfusioClient(httpClient, new InfusioConfig(authorization.Token));

            // DSL Demo
            await InfusioDslDemo.Run(client);

            // Api Client Demo
            await ClassicApiClientDemo.Run(client);
        }
        public async Task <AccessTokenResponse> GetAccessToken(AccessTokenRequest request)
        {
            HttpClient httpClient = new HttpClient();

            httpClient.DefaultRequestHeaders.Accept.Clear();
            httpClient.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));


            httpClient.BaseAddress = new Uri("https://login.microsoftonline.com");
            request.RedirectUrl    = "https://localhost:44314/Calendar/MicrosoftAuthTokenCallback";
            request.GrantType      = "authorization_code";
            request.ClientID       = _configure.GetValue <string>("Microsoft:ClientID");
            request.Secret         = _configure.GetValue <string>("Microsoft:Secret");

            //TODO: Move most of this logic to base class
            //TODO: add logging
            var content = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair <string, string>("grant_type", "authorization_code"),
                new KeyValuePair <string, string>("client_id", $"{request.ClientID}"),
                new KeyValuePair <string, string>("client_secret", $"{request.Secret}"),
                new KeyValuePair <string, string>("scope", "https://graph.microsoft.com/calendars.read"),
                new KeyValuePair <string, string>("code", $"{request.Code}"),
                new KeyValuePair <string, string>("redirect_uri", "https://localhost:44314/Calendar/MicrosoftAuthTokenCallback")
            });
            var accessTokenResponse = await
                                      httpClient.PostAsync(_acessTokenUrl, content);

            AccessTokenResponse accessToken = null;

            if (accessTokenResponse.IsSuccessStatusCode)
            {
                var t = new JsonMediaTypeFormatter();
                t.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
                accessToken = await accessTokenResponse.Content.ReadAsAsync <AccessTokenResponse>(new List <MediaTypeFormatter>
                {
                    t
                });
            }
            else
            {
                var t = await accessTokenResponse?.Content?.ReadAsStringAsync();
            }

            return(accessToken);
        }
Exemplo n.º 19
0
        public async Task <AccessTokenResponse> Handle(SignInCommand request, CancellationToken cancellationToken)
        {
            Task <MiniUser> Validate(bool isPasswordless) => ValidateCredentialAsync(isPasswordless, request.Username, request.Password, request.Code);

            var accessTokenRequest = new AccessTokenRequest
            {
                Code         = request.Code,
                GrantType    = request.GrantType,
                Password     = request.Password,
                RefreshToken = request.RefreshToken,
                Username     = request.Username
            };

            var miniUser = await authenticationService.AuthenticateAsync(accessTokenRequest, Audience.Runner, Validate);

            return(await authenticationService.CreateTokensAsync(Audience.Runner, miniUser, Role.Runner));
        }
Exemplo n.º 20
0
        public void ValidatePassword()
        {
            var password     = Guid.NewGuid().ToString("N");
            var passwordSalt = Guid.NewGuid().ToString("N");
            var passwordHash = SecurityContext.GeneratePasswordHash(password, passwordSalt);

            var user = new ClaimUser {
                PasswordHash = passwordHash, PasswordSalt = passwordSalt
            };
            var accessTokenRequest = new AccessTokenRequest {
                Password = password, Username = "******"
            };

            var valid = SecurityContext.ValidatePassword(user, accessTokenRequest);

            Assert.IsTrue(valid);
        }
Exemplo n.º 21
0
        public IActionResult Index(AccessTokenRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View(request));
            }

            ///For demo purposes this is stored in a session.
            httpContext.Session.SetObject(accessTokenKey, request);

            /// Redirects to the IDP server for authentication.
            var endPoint = $"{settings.Value.AuthorityUrl}/connect/authorize?response_type=code&state=&client_id={request.ClientId}&scope=contact:read%20activity:read%20property:read%20communication:read%20transaction:read&redirect_uri={settings.Value.RedirectUrl}";

            //var endPoint = $"{settings.Value.AuthorityUrl}/connect/authorize?response_type=code&state=&client_id={request.ClientId}&scope=contact:write%20contact:read%20activity:read%20activity:write%20transaction:read%20transaction:write%20property:write%20property:read%20communication:read&redirect_uri={settings.Value.RedirectUrl}";
            // var endPoint = $"{settings.Value.AuthorityUrl}/connect/authorize?response_type=code&state=&client_id={request.ClientId}&scope=contact:read&redirect_uri={settings.Value.RedirectUrl}";
            return(Redirect(endPoint));
        }
Exemplo n.º 22
0
        public void GetResponseTest()
        {
            var request    = new AccessTokenRequest(new AppIdentication("james", "mySecret"));
            var factory    = new HttpFactory();
            var logger     = new MockLogger();
            var mockLogger = new Mock <ILogger>();
            var client     = new Mock <DefaultApiClient>(logger, factory);

            client.Setup(api => api.DoExecute(request))
            .Returns(new Task <string>(() => "{\"access_token\":\"ACCESS_TOKEN\",\"expires_in\":7200}"));

            var response = client.Object.Execute(request);

            Assert.Equal(0, response.ErrorCode);
            Assert.Equal("ACCESS_TOKEN", response.Access_Token);
            Assert.Equal(7200, response.Expires_In);
        }
Exemplo n.º 23
0
        public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req, TraceWriter log, ExecutionContext context)
        {
            log.Info("C# HTTP trigger function processed a request.");

            var config = new ConfigurationBuilder()
                         .SetBasePath(context.FunctionAppDirectory)
                         .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                         .AddJsonFile("local.settings.development.json", optional: true, reloadOnChange: true)
                         .AddEnvironmentVariables()
                         .Build();

            string accessCode = req.Query["access_code"];
            string state      = req.Query["state"];

            if (string.IsNullOrEmpty(accessCode) || string.IsNullOrEmpty(state))
            {
                return(new BadRequestObjectResult(new { error = "Invalid request" }));
            }

            var client = new HttpClient {
                BaseAddress = new Uri("https://github.com/login/oauth/")
            };

            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var request = new AccessTokenRequest
            {
                client_id     = config["Github:ClientId"],
                client_secret = config["Github:ClientSecret"],
                code          = accessCode,
                state         = config["Github:State"]
            };
            var response = await client.PostAsync("access_token", new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"));

            if (!response.IsSuccessStatusCode)
            {
                return(new BadRequestObjectResult(new { error = "Invalid request" }));
            }
            var content = await response.Content.ReadAsAsync <AccessTokenResponse>();

            if (string.IsNullOrEmpty(content.access_token))
            {
                return(new BadRequestObjectResult(new { error = "Invalid request" }));
            }
            return(new OkObjectResult(content));
        }
Exemplo n.º 24
0
        /// <summary>
        /// 获取token
        /// </summary>
        /// <returns></returns>
        public string GetToken()
        {
            var token = cacheMgr.Get(ACCESS_TOKEN_CACHE_KEY, 0, () =>
            {
                var isDebug = WxConfig.IsDebug;

                if (isDebug)
                {
                    var result = WxConfig.WxAccessToken;

                    if (!string.IsNullOrEmpty(result))
                    {
                        return(result);
                    }
                }

                var request = new AccessTokenRequest();
                var api     = string.Format(ACCESS_TOKEN_API,
                                            request.grant_type,
                                            request.appid,
                                            request.secret);
                var tokenResult = WxHelper.Send <AccessTokenResponse>(api);

                if (tokenResult == null)
                {
                    return(null);
                }
                else
                {
                    if (cacheMgr.IsSet(ACCESS_TOKEN_CACHE_KEY))
                    {
                        cacheMgr.Remove(ACCESS_TOKEN_CACHE_KEY);
                    }

                    cacheMgr.Set(ACCESS_TOKEN_CACHE_KEY, tokenResult.access_token, tokenResult.expires_in / 60);

                    Log.Info(string.Format("获取Token:{0}, 过期时间:{1}", tokenResult.access_token, tokenResult.expires_in));
                }

                return(tokenResult.access_token);
            });

            return(token);
        }
Exemplo n.º 25
0
        public bool GetAccessToken()
        {
            if (!string.IsNullOrWhiteSpace(CurrectUserAccount.AuthorisationCode))
            {
                FhirApi FhirApi            = new FhirApi(FhirGatewayEndpoint);
                var     AccessTokenRequest = new AccessTokenRequest();
                AccessTokenRequest.Client_id     = ApplicationStore.App_id;
                AccessTokenRequest.Client_secret = ApplicationStore.App_secret;
                AccessTokenRequest.Code          = CurrectUserAccount.AuthorisationCode;

                TokenResponse TokenResponse = FhirApi.GetAccessToken(AccessTokenRequest);
                if (TokenResponse.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    this.CurrectUserAccount.AccessExpires  = TokenResponse.AccessExpires;
                    this.CurrectUserAccount.AccessToken    = TokenResponse.AccessToken;
                    this.CurrectUserAccount.RefreshExpires = TokenResponse.RefreshExpires;
                    this.CurrectUserAccount.RefreshToken   = TokenResponse.RefreshToken;
                    this.CurrectUserAccount.Scope          = TokenResponse.Scope;
                    if (ApplicationStore.UserList.SingleOrDefault(x => x.Username == CurrectUserAccount.Username) == null)
                    {
                        ApplicationStore.UserList.Add(this.CurrectUserAccount);
                        SaveApplicationStore();
                    }
                    return(true);
                }
                else
                {
                    if (TokenResponse.ErrorResponse != null)
                    {
                        this.ErrorMessage = $"Access Token request failed with message: Http Status: {TokenResponse.StatusCode.ToString()}, Error: {TokenResponse.ErrorResponse.Error}, ErrorMessage: {TokenResponse.ErrorResponse.Description}";
                    }
                    else
                    {
                        this.ErrorMessage = $"Access Token request failed with no error message returned message, http status was: {TokenResponse.StatusCode.ToString()}";
                    }
                    return(false);
                }
            }
            else
            {
                throw new FormatException($"No CurrectUserAccount.AuthorisationCode found for access token request.");
            }
        }
        public string GetAccessToken(AccessTokenRequest request)
        {
            try {
                bool exists = AccessTokenInfo.Exists(request.AuthorizationId);

                // Check for SQLServer-error
                if (!string.IsNullOrEmpty(AccessTokenInfo.ErrorMessage))
                {
                    var msg = AccessTokenInfo.ErrorMessage;
                    AccessTokenInfo.ErrorMessage = "";
                    return(msg);
                }

                if (exists)                                                                                                                                 // = AccessTokenInfo.Exists(request.AuthorizationId)) {
                {
                    var answer = MessageBox.Show("The given AuthorizationCode is already used. Do you want to send anyway to deactivate this integration?", //"Den AuthorizationCode som angivits är redan förbrukad. Vill du skicka ändå för att deaktivera denna integration?",
                                                 "AccessToken existerar",
                                                 MessageBoxButton.YesNo,
                                                 MessageBoxImage.Warning,
                                                 MessageBoxResult.No);

                    if (answer == MessageBoxResult.No)
                    {
                        //return "En AccessToken har redan skapats med given AuthorizationCode.";
                        return("Den AuthorizationCode som angivits är redan förbrukad.");
                    }
                }

                var accessTokenInfo = AccessTokenInfo.GetAccessToken(request.AuthorizationId, request.ClientSecret);

                if (!accessTokenInfo.HasError && !exists)
                {
                    var authorizationCodeEdit = AuthorizationCodeEdit.NewAuthorizationCode();
                    authorizationCodeEdit.AuthorizationCode = request.AuthorizationId;
                    authorizationCodeEdit = authorizationCodeEdit.Save();
                }

                return(accessTokenInfo.AccessToken);
            }
            catch (Exception ex) {
                throw new Exception(ex.Message);
            }
        }
Exemplo n.º 27
0
        /// <summary>
        /// 异步获取Token
        /// </summary>
        /// <returns></returns>
        public async Task <string> GetTokenAsync()
        {
            return(await _memoryCache.GetOrCreateAsync <string>($"SmartWeChat_AccessToken_{_options.AppId}", async (cacheEntry) =>
            {
                var request = new AccessTokenRequest
                {
                    AppId = _options.AppId,
                    Secret = _options.AppSecret,
                    GrantType = "client_credential"
                };

                var tokenResponse = await _request.Execute(request);

                _logger.LogDebug($"AccessTokenManager Get Token--{tokenResponse.AccessToken}");
                // 放宽5分钟的缓存时间,防止延迟导致Token失效的访问
                cacheEntry.AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(tokenResponse.ExpiresIn - (60 * 5));
                return tokenResponse.AccessToken;
            }));
        }
Exemplo n.º 28
0
        /// <summary>
        /// 環境変数から値を設定して、アクセストークンを取得する。
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public static async Task <AccessTokenResponce> GetAccessTokenAsync()
        {
            var url     = Settings.URL.AccessTokenUrl;
            var request = new AccessTokenRequest()
            {
                GrantType    = "client_credentials",
                ClientId     = CotohaAPI.Settings.AccountInfo.DeveloperClientId,
                ClientSecret = CotohaAPI.Settings.AccountInfo.DeveloperClientSecret
            };


            AccessTokenResponce responce =
                await HttpClientManager.ExecutePostAsync <AccessTokenRequest, AccessTokenResponce>(url, request);

            //set the bearer value for the next API call.
            CotohaApiManager.BearerValue =
                (responce.StatusCode == HttpStatusCode.Created) ? responce.AccessToken : string.Empty;
            return(responce);
        }
Exemplo n.º 29
0
        public async Task PerformAnalysisAsync_ForValidCreditCard_ReturnsAuthorized(VelocityClient sut, BraspagAuthClient authClient)
        {
            var authRequest = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "5d85902e-592a-44a9-80bb-bdda74d51bce",
                ClientSecret = "mddRzd6FqXujNLygC/KxOfhOiVhlUr2kjKPsOoYHwhQ=",
                Scope        = "VelocityApp"
            };

            var authResponse = await authClient.CreateAccessTokenAsync(authRequest);

            Assert.Equal(HttpStatusCode.OK, authResponse.HttpStatus);

            var request = new AnalysisRequest
            {
                Transaction = new TransactionData
                {
                    OrderId = DateTime.Now.Ticks.ToString(),
                    Date    = "2018-09-15 13:30:00.860",
                    Amount  = 1000
                },
                Card = new CardData
                {
                    Holder     = "BJORN IRONSIDE",
                    Brand      = "visa",
                    Number     = "1000100010001000",
                    Expiration = "10/2025"
                },
                Customer = new CustomerData
                {
                    Name      = "Bjorn Ironside",
                    Identity  = "762.502.520-96",
                    IpAddress = "127.0.0.1",
                    Email     = "*****@*****.**"
                }
            };

            var response = await sut.PerformAnalysisAsync(request, new MerchantCredentials { AccessToken = authResponse.Token, MerchantId = "94E5EA52-79B0-7DBA-1867-BE7B081EDD97" });

            Assert.Equal(HttpStatusCode.Created, response.HttpStatus);
        }
Exemplo n.º 30
0
        public static void Run()
        {
            Console.WriteLine("VELOCITY");
            Console.WriteLine("=====================================");

            /* Criação do Token de Acesso OAUTH via Braspag Auth */
            var braspagAuthClient = new BraspagAuthClient(new BraspagAuthClientOptions
            {
                Environment = Environment.Sandbox
            });

            var authRequest = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "5d85902e-592a-44a9-80bb-bdda74d51bce",
                ClientSecret = "mddRzd6FqXujNLygC/KxOfhOiVhlUr2kjKPsOoYHwhQ=",
                Scope        = "VelocityApp"
            };

            var authResponse = braspagAuthClient.CreateAccessTokenAsync(authRequest).Result;

            /* Criação do Cliente Velocity */
            var velocityClient = new VelocityClient(new VelocityClientOptions
            {
                Environment = Environment.Sandbox,
                Credentials = new MerchantCredentials
                {
                    MerchantId  = "94E5EA52-79B0-7DBA-1867-BE7B081EDD97",
                    AccessToken = authResponse.Token
                }
            });

            /* Analisando uma transação com Velocity */
            var analysisResponse = PerformAnalysisAsync(velocityClient).Result;

            Console.WriteLine("Transaction analyzed");
            Console.WriteLine($"Score: {analysisResponse.AnalysisResult.Score}");
            Console.WriteLine($"Status: {analysisResponse.AnalysisResult.Status}");
            Console.WriteLine($"Accept By WhiteList: {analysisResponse.AnalysisResult.AcceptByWhiteList}");
            Console.WriteLine($"Reject By BlackList: {analysisResponse.AnalysisResult.RejectByBlackList}");
            Console.WriteLine();
        }
Exemplo n.º 31
0
        private void RefeshToken()
        {
            if (m_appIdentity == null)
            {
                throw new WXApiException(-100, "请先设置好AppID与AppSecret");
            }

            Console.WriteLine("refesh token");
            var now      = DateTime.Now;
            var request  = new AccessTokenRequest(m_appIdentity);
            var response = Client.Execute(request);

            if (response.IsError)
            {
                throw new WXApiException(response.ErrorCode, response.ErrorMessage);
            }

            ExpireTime = now.AddSeconds(response.Expires_In);
            Token      = response.Access_Token;
        }
Exemplo n.º 32
0
        public async Task <AccessTokenResponse> GetAccessTokenAsync(AccessTokenRequest accessTokenRequest)
        {
            using (HttpClient client = new HttpClient())
            {
                AccessTokenResponse response = null;

                try
                {
                    var result = await client.GetAsync(accessTokenRequest.ToString());

                    response = await result.Content.ReadAsAsync <AccessTokenResponse>();
                }
                catch (HttpRequestException e)
                {
                    _logger.LogError(e.Message);
                }

                return(response);
            }
        }
Exemplo n.º 33
0
        public AccessTokenResponse GetAccessToken()
        {
            if (!APIConfig.AuthorizeParameters.ContainsKey("appkey") ||
                !APIConfig.AuthorizeParameters.ContainsKey("orgid") ||
                !APIConfig.AuthorizeParameters.ContainsKey("appsecret") ||
                !APIConfig.AuthorizeParameters.ContainsKey("secerturl"))
            {
                throw new Exception("鉴权参数不完整");
            }
            var request = new AccessTokenRequest();
            Dictionary <string, object> parm = new Dictionary <string, object>();
            string appkey    = APIConfig.AuthorizeParameters["appkey"];
            string orgid     = APIConfig.AuthorizeParameters["orgid"];
            string appsecret = APIConfig.AuthorizeParameters["appsecret"];
            string secetrurl = APIConfig.AuthorizeParameters["secerturl"];

            parm.Add("appkey", appkey);
            parm.Add("orgid", orgid);
            parm.Add("appsecret", appsecret);

            JsonSerializer jsonSerializer = new JsonSerializer();
            string         datas          = jsonSerializer.Serialize(parm);

            try
            {
                var    signClass = new TokenManage();
                string signvalue = signClass.CreateSignedToken(datas, secetrurl);
                string authStr   = @"{""appKey"":""" + appkey + @""",""authInfo"":""" + signvalue + @""",""orgId"":" + orgid + @"}";
                string encode    = Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes(authStr));
                Dictionary <string, string> parms = new Dictionary <string, string>();
                parms.Add("Authorization", encode);
                request.SetHeaderParameters(parms);
                var response = Excute(request);
                return(response);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Exemplo n.º 34
0
 public async Task <IActionResult> GetAccessToken([FromBody] AccessTokenRequest request)
 {
     try
     {
         if (request == null)
         {
             throw new ArgumentNullException();
         }
         var result = _authorizationService.RefreshAccessTokenAsync(request);
         return(Ok(await result));
     }
     catch (ArgumentException ex)
     {
         //#TODO log
         return(BadRequest());
     }
     catch (Exception ex)
     {
         //#TODO log
         throw;
     }
 }
Exemplo n.º 35
0
        private void RefeshToken()
        {
            if (m_appIdentity == null)
            {
                throw new WXApiException(-100, "请先设置好AppID与AppSecret");
            }

            Console.WriteLine("refesh token");
            var now = DateTime.Now;
            var request = new AccessTokenRequest(m_appIdentity);
            var response = Client.Execute(request);
            if (response.IsError)
            {
                throw new WXApiException(response.ErrorCode, response.ErrorMessage);
            }

            ExpireTime = now.AddSeconds(response.Expires_In);
            Token = response.Access_Token;
        }
Exemplo n.º 36
0
        /// <summary>
        /// 刷新公众号token
        /// </summary>
        private void RefeshToken(string appID)
        {
            if (Access_TokenInfoDic.ContainsKey(appID))
            {

                DateTime now = DateTime.Now;
                MWeixinParam weixinParam = null;
                // 如果已经超时
                if (Access_TokenInfoDic[appID].OutTime <= now)
                {
                    weixinParam = new MWeixinParam(Access_TokenInfoDic[appID].AppID, Access_TokenInfoDic[appID].AppSecret);
                    AccessTokenRequest request = new AccessTokenRequest(weixinParam);
                    // 重新获取token
                    var response = Client.Execute(request);
                    if (response.IsError)
                    {
                        throw new Exception(response.ErrorMessage);
                    }
                    // 修改授权
                    Access_TokenInfoDic[appID].OutTime = now.AddSeconds(response.Expires_In);
                    Access_TokenInfoDic[appID].Access_Token = response.Access_Token;

                    // 更新
                    BUpdateAccess_Token updateToken = new BUpdateAccess_Token(Access_TokenInfoDic[appID].KeyID, SecurityUtility.EncryptDES(Access_TokenInfoDic[appID].Access_Token), string.Empty, Access_TokenInfoDic[appID].OutTime);
                    updateToken.Execute();


                    // 更新ticket
                    this.RefeshTicket(response.Access_Token);
                }
            }

        }
        protected virtual OAuthMessage CreateTypedOAuthMessageFromParameters(Uri baseUri, NameValueCollection parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            OAuthMessage request = null;
            if (parameters["response_type"] == "code" || parameters["response_type"] == "token")
            {
                request = new EndUserAuthorizationRequest(baseUri);
            }
            if (!string.IsNullOrEmpty(parameters["code"]) || (!string.IsNullOrEmpty(parameters["access_token"]) && string.IsNullOrEmpty(parameters["refresh_token"])))
            {
                request = new EndUserAuthorizationResponse(baseUri);
            }
            if (!string.IsNullOrEmpty(parameters["error"]))
            {
                request = new EndUserAuthorizationFailedResponse(baseUri);
            }
            if (!string.IsNullOrEmpty(parameters["grant_type"]) && parameters["grant_type"] == "authorization_code")
            {
                request = new AccessTokenRequestWithAuthorizationCode(baseUri);
            }
            if (!string.IsNullOrEmpty(parameters["grant_type"]) && parameters["grant_type"] == OAuthConstants.AccessGrantType.ClientCredentials)
            {
                request = new AccessTokenRequest(baseUri);
            }
            if (!string.IsNullOrEmpty(parameters["access_token"]))
            {
                request = new AccessTokenResponse(baseUri);
            }
            if (request == null)
            {
                throw new OAuthMessageSerializationException(Resources.ID3723);
            }

            request.Parameters.Add(parameters);
            request.Validate();
            return request;
        }
Exemplo n.º 38
0
        //static void mytest()
        static void Main(string[] args)
        {
            ///获取accesstoken示例,注意有效期 ,过期之后如何更新token?
            DefaultAliClient defaultAliClient = new DefaultAliClient("https://gw.open.1688.com/openapi/", "1002071", "WsRIC:O6CF2");
            AccessTokenRequest accessTokenRequest = new AccessTokenRequest();
            accessTokenRequest.account = "testfree66"; //你的1688 memberId
            accessTokenRequest.password = "******"; //你的密码
            AccessTokenResponse accessTokenResponse = defaultAliClient.Execute(accessTokenRequest);
            Jayrock.Json.JsonTextWriter writer = new Jayrock.Json.JsonTextWriter();
            Jayrock.Json.Conversion.JsonConvert.Export(accessTokenResponse, writer);
            string str = writer.ToString();
            Console.WriteLine(str);

            ///
            /// 查询会员信息示例
            ///
            MemberInfoRequest memberInfoRequest = new MemberInfoRequest();
            memberInfoRequest.access_token = accessTokenResponse.accessToken;
            memberInfoRequest.memberId = accessTokenResponse.memberId;
            MemberInfoResponse memberInfoResponse = defaultAliClient.Execute(memberInfoRequest);
            Console.WriteLine(memberInfoResponse.toReturn.isTP);
            Jayrock.Json.JsonTextWriter writer1 = new Jayrock.Json.JsonTextWriter();
            Jayrock.Json.Conversion.JsonConvert.Export(memberInfoResponse, writer1);
            string str1 = writer1.ToString();
            Console.WriteLine(str1);

            ///获取阿里巴巴阿中国网站会员诚信信息。包括诚信通和诚信保障相关数据
            CreditInfoGetRequest creditInfoGetRequest = new CreditInfoGetRequest();
            creditInfoGetRequest.memberIds = "mmm;cnabblp";
            CreditInfoGetResponse creditInfoGetResponse = defaultAliClient.Execute(creditInfoGetRequest);
            Console.WriteLine(creditInfoGetResponse);

            ///获取阿里巴巴中国网站会员的公司库信息
            CompanyGetRequest companyGetRequest = new CompanyGetRequest();
            companyGetRequest.memberId = "mmm";
            companyGetRequest.access_token = accessTokenResponse.memberId;
            CompanyGetResponse companyGetResponse = defaultAliClient.Execute(companyGetRequest);
            Console.WriteLine(companyGetResponse);

            ///获取阿里巴巴中国网站会员已发布的产品信息列表 offer.getPublishOfferList 示例
            PublishOfferListRequest publishOfferListRequest = new PublishOfferListRequest();
            publishOfferListRequest.access_token = accessTokenResponse.accessToken;
            publishOfferListRequest.type = "SALE";
            publishOfferListRequest.pageSize = 10;
            publishOfferListRequest.page = 2;
            publishOfferListRequest.returnFields = new string[] { "offerId", "subject", "productFeatureList", "details", "memberId", "postCategryId", "saledCount", "amountOnSale", "priceRanges", "unit", "gmtModified", "imageList" };
            PublishOfferListResponse publishOfferListResponse = defaultAliClient.Execute(publishOfferListRequest);
            Console.WriteLine(publishOfferListResponse.toReturn);
            Jayrock.Json.JsonTextWriter writer2 = new Jayrock.Json.JsonTextWriter();
            Jayrock.Json.Conversion.JsonConvert.Export(publishOfferListResponse, writer2);
            string str2 = writer2.ToString();
            Console.WriteLine(str2);

            ///获取阿里巴巴中国网站会员所有的产品信息列表 offer.getAllOfferList -- version: 1 示例
            AllOfferListRequest allOfferListRequest = new AllOfferListRequest();
            allOfferListRequest.access_token = accessTokenResponse.accessToken;
            allOfferListRequest.type = "SALE";
            allOfferListRequest.returnFields = new string[] { "offerId", "subject", "productFeatureList", "details", "memberId", "postCategryId", "saledCount", "amountOnSale", "priceRanges", "unit", "gmtModified", "imageList" };
            PublishOfferListResponse publishOfferListResponse1 = defaultAliClient.Execute(allOfferListRequest);
            Console.WriteLine(publishOfferListResponse1.toReturn);

            ///查询单个产品信息 offer.get -- version: 1
            OfferQueryRequest offerQueryRequest = new OfferQueryRequest();
            //offerQueryRequest.access_token = accessTokenResponse.accessToken;
            offerQueryRequest.offerId = 37014312231;
            //offerQueryRequest.returnFields = new string[] { "skuArray", "offerId", "subject", "productFeatureList", "details", "memberId", "postCategryId", "saledCount", "amount", "amountOnSale", "priceRanges", "unit", "gmtModified", "imageList" };
            OfferResponse offerResponse = defaultAliClient.Execute(offerQueryRequest);
            Console.WriteLine(offerResponse.toReturn);

            ///增量修改产品库存 offer.modify.stock -- version: 1
            OfferModifyStockRequest offerModifyStockRequest = new OfferModifyStockRequest();
            offerModifyStockRequest.offerId = 36379282867;//产品id
            offerModifyStockRequest.offerAmountChange = 1; //+表示增加,负表示减少
            offerModifyStockRequest.access_token = accessTokenResponse.accessToken;
            Dictionary<string, string> skuAmountChange = new Dictionary<string, string>();
            skuAmountChange.Add("8a83875664478078358187ed938f4bab", "1");//如果是sku 产品,则需要修改sku的库存
            offerModifyStockRequest.skuAmountChange = skuAmountChange;
            OfferModifyStockResponse offerModifyStockResponse = defaultAliClient.Execute(offerModifyStockRequest);
            Console.WriteLine(offerModifyStockResponse);

            ///offer.modify.increment 增量修改offer(该接口只支持价格和标题的增量修改!请慎用!)
            OfferModifyIncrementRequest offerModifyIncrementRequest = new OfferModifyIncrementRequest();
            offerModifyIncrementRequest.access_token = accessTokenResponse.accessToken;
            OfferModifyIncrement offer = new OfferModifyIncrement();
            offer.offerId = "1294434695";
            offer.priceRanges = "60:10`70:9`80:313.19";
            offer.subject = "c# sdk test modify title";
            offerModifyIncrementRequest.offer = offer;
            OfferModifyIncrementResponse offerModifyIncrementResponse = defaultAliClient.Execute(offerModifyIncrementRequest);
            Console.WriteLine(offerModifyIncrementResponse);

            ///offer.modify.increment 增量修改offer SKU价格(该接口只支持价格和标题的增量修改!请慎用!)
            OfferModifyIncrementRequest offerModifyIncrementRequest1 = new OfferModifyIncrementRequest();
            offerModifyIncrementRequest1.access_token = accessTokenResponse.accessToken;
            OfferModifyIncrement offer1 = new OfferModifyIncrement();
            offer1.offerId = "35687805905";
            OfferSkuParam[] offerSkuParam = new OfferSkuParam[1];
            OfferSkuParam OfferSkuParam1 = new OfferSkuParam();
            OfferSkuParam1.specAttributes = new Dictionary<string, string>();
            OfferSkuParam1.specAttributes.Add("450", "XXS");
            OfferSkuParam1.specAttributes.Add("3216", "黑色");
            OfferSkuParam1.amountOnSale = 100;
            OfferSkuParam1.price = 2000;
            OfferSkuParam1.retailPrice = 3000;
            OfferSkuParam1.cargoNumber = "11";
            offerSkuParam[0] = OfferSkuParam1;
            offer1.skuList = offerSkuParam;
            offerModifyIncrementRequest1.offer = offer1;
               ///         OfferModifyIncrementResponse offerModifyIncrementResponse1 = defaultAliClient.Execute(offerModifyIncrementRequest1);
               ///         Console.WriteLine(offerModifyIncrementResponse1);

            //用户运费模板列表描述查询
            E56DeliveryTemplateListRequest e56DeliveryTemplateListRequest = new E56DeliveryTemplateListRequest();
            e56DeliveryTemplateListRequest.memberId = "testfree";
            e56DeliveryTemplateListRequest.access_token = accessTokenResponse.accessToken;
            E56DeliveryTemplateListResponse e56DeliveryTemplateListResponse = defaultAliClient.Execute(e56DeliveryTemplateListRequest);
            Console.WriteLine(e56DeliveryTemplateListResponse);
            E56DeliveryTemplateGetRequest e56DeliveryTemplateGetRequest = new E56DeliveryTemplateGetRequest();
            e56DeliveryTemplateGetRequest.memberId = "testfree";
            e56DeliveryTemplateGetRequest.access_token = accessTokenResponse.accessToken;
            e56DeliveryTemplateGetRequest.templateId = "1069818";
            E56DeliveryTemplateGetResponse e56DeliveryTemplateGetResponse = defaultAliClient.Execute(e56DeliveryTemplateGetRequest);
            Console.WriteLine(e56DeliveryTemplateGetResponse);

            ///获取提供该服务的物流公司列表 e56.logistics.companies.get -- version: 1
            LogisticsCompaniesGetRequest logisticsCompaniesGetRequest = new LogisticsCompaniesGetRequest();
            logisticsCompaniesGetRequest.access_token = accessTokenResponse.accessToken;
            logisticsCompaniesGetRequest.memberId = "testfree";
            logisticsCompaniesGetRequest.serviceType = "ZX";
            LogisticsCompaniesGetResponse logisticsCompaniesGetResponse = defaultAliClient.Execute(logisticsCompaniesGetRequest);
            Console.WriteLine(logisticsCompaniesGetResponse);

            ///用户调用该接口可实现自己联系发货(线下物流),使用该接口发货,交易订单状态会直接变成卖家已发货。不支持货到付款、在线下单类型的订单。e56.logistics.offline.send -- version: 1
            LogisticsOfflineSendRequest logisticsOfflineSendRequest = new LogisticsOfflineSendRequest();
            logisticsOfflineSendRequest.memberId = "testfree";
            logisticsOfflineSendRequest.orderId = "404252368801798";
            logisticsOfflineSendRequest.orderEntryIds = "404252368801798";
            logisticsOfflineSendRequest.tradeSourceType = "cbu-trade";
            logisticsOfflineSendRequest.logisticsCompanyId = "3";
            logisticsOfflineSendRequest.selfCompanyName = "中通速递";
            logisticsOfflineSendRequest.logisticsBillNo = "768070181853";
            logisticsOfflineSendRequest.gmtSystemSend = "2013-10-23 11:21:35";
            logisticsOfflineSendRequest.gmtLogisticsCompanySend = "2013-10-23 11:21:35";
            logisticsOfflineSendRequest.access_token = accessTokenResponse.accessToken;
            //LogisticsOfflineSendResponse logisticsOfflineSendResponse = defaultAliClient.Execute(logisticsOfflineSendRequest);
            //Console.WriteLine(logisticsOfflineSendResponse);

            ///用户根据交易号查询物流流转信息,如2010-8-10 15:23:00到达杭州集散地。 此接口的返回信息都由物流公司提供。e56.logistics.trace.get -- version: 1
            LogisticsOrderGetRequest logisticsOrderGetRequest = new LogisticsOrderGetRequest();
            logisticsOrderGetRequest.memberId = "testfree";
            logisticsOrderGetRequest.orderId = "404252368801798";
            logisticsOrderGetRequest.tradeSourceType = "cbu-trade";
            logisticsOrderGetRequest.fields = "company.name,sender,receiver,sendgood";
            logisticsOrderGetRequest.access_token = accessTokenResponse.accessToken;
            LogisticsOrderGetResponse logisticsOrderGetResponse = defaultAliClient.Execute(logisticsOrderGetRequest);
            Console.WriteLine(logisticsOrderGetResponse);

            ///根据交易订单ID, 获取该订单下的物流单列表 e56.logistics.orders.get -- version: 1
            LogisticsTraceGetRequest logisticsTraceGetRequest = new LogisticsTraceGetRequest();
            logisticsTraceGetRequest.memberId = "testfree";
            logisticsTraceGetRequest.orderId = "404252368801798";
            logisticsTraceGetRequest.tradeSourceType = "cbu-trade";
            logisticsTraceGetRequest.access_token = accessTokenResponse.accessToken;
            LogisticsTraceGetResponse logisticsTraceGetResponse = defaultAliClient.Execute(logisticsTraceGetRequest);
            Console.WriteLine(logisticsTraceGetResponse);

            ///本接口查询当前会话会员的交易订单列表
            TradeOrderListGetRequest tradeOrderListGetRequest = new TradeOrderListGetRequest();
            tradeOrderListGetRequest.access_token = accessTokenResponse.accessToken;
            tradeOrderListGetRequest.sellerMemberId = "testfree";
            tradeOrderListGetRequest.pageSize = 20;
            tradeOrderListGetRequest.pageNO = 1;
            TradeOrderListGetResponse tradeOrderListGetResponse = defaultAliClient.Execute(tradeOrderListGetRequest);
            Console.WriteLine(tradeOrderListGetResponse);

            ///本接口查询当前会话会员的交易订单详情
            TradeOrderDetailGetRequest tradeOrderDetailGetRequest = new TradeOrderDetailGetRequest();
            tradeOrderDetailGetRequest.access_token = accessTokenResponse.accessToken;
            tradeOrderDetailGetRequest.orderId = 404252368801798;
            TradeOrderDetailGetResponse tradeOrderDetailGetResponse = defaultAliClient.Execute(tradeOrderDetailGetRequest);
            Console.WriteLine(tradeOrderDetailGetResponse);

            ///本接口实现获取指定会员在阿里巴巴中文站上的发货地址列表信息
            TradeFreightSendGoodsAddressListGetRequest tradeFreightSendGoodsAddressListGetRequest = new TradeFreightSendGoodsAddressListGetRequest();
            tradeFreightSendGoodsAddressListGetRequest.access_token = accessTokenResponse.accessToken;
            tradeFreightSendGoodsAddressListGetRequest.memberId = "testfree";
            tradeFreightSendGoodsAddressListGetRequest.returnFields = "deliveryAddressId,updateTime,isCommonUse,contactName,location,address,postcode,telephone,mobilephone";
            TradeFreightSendGoodsAddressListGetResponse tradeFreightSendGoodsAddressListGetResponse = defaultAliClient.Execute(tradeFreightSendGoodsAddressListGetRequest);
            Console.WriteLine(tradeFreightSendGoodsAddressListGetResponse);

            ///本接口实现获取指定会员在阿里巴巴中文站上的物流模板列表信息
            TradeFreightTemplateListGetRequest tradeFreightTemplateListGetRequest = new TradeFreightTemplateListGetRequest();
            tradeFreightTemplateListGetRequest.access_token = accessTokenResponse.accessToken;
            tradeFreightTemplateListGetRequest.memberId = "testfree";
            ///TradeFreightTemplateListGetResponse tradeFreightTemplateListGetResponse = defaultAliClient.Execute(tradeFreightTemplateListGetRequest);
            ///Console.WriteLine(tradeFreightTemplateListGetResponse);

            ///获取省份编码信息
            AreaCodeGetRequest areaCodeGetRequest = new AreaCodeGetRequest();
            AreaCodeGetResponse areaCodeGetResponse = defaultAliClient.Execute(areaCodeGetRequest);
            Console.WriteLine(areaCodeGetResponse.toReturn);
            Console.WriteLine(accessTokenResponse);

            ///本接口实现获取当前用户信息,包括可用空间和总空间等
            IbankProfileGetRequest ibankProfileGetRequest = new IbankProfileGetRequest();
            ibankProfileGetRequest.access_token = accessTokenResponse.accessToken;
            IbankProfileGetResponse IbankProfileGetResponse = defaultAliClient.Execute(ibankProfileGetRequest);
            Console.WriteLine(IbankProfileGetResponse);

            ///本接口实现获取当前用户相册列表
            IbankAlbumListRequest ibankAlbumListRequest = new IbankAlbumListRequest();
            ibankAlbumListRequest.access_token = accessTokenResponse.accessToken;
            ibankAlbumListRequest.albumType = "MY";
            ibankAlbumListRequest.pageNo = 1;
            ibankAlbumListRequest.pageSize = 20;
            IbankAlbumListResponse ibankAlbumListResponse = defaultAliClient.Execute(ibankAlbumListRequest);
            Console.WriteLine(ibankAlbumListResponse.toReturn);

            ///本接口实现获取当前用户相册内图片列表
            IbankImageListRequest ibankImageListRequest = new IbankImageListRequest();
            ibankImageListRequest.access_token = accessTokenResponse.accessToken;
            ibankImageListRequest.albumId = 10971051;
            ibankImageListRequest.pageNo = 1;
            ibankImageListRequest.pageSize = 50;
            IbankImageListResponse ibankImageListResponse = defaultAliClient.Execute(ibankImageListRequest);
            Console.WriteLine(ibankImageListResponse.toReturn);

            ///根据叶子类目ID获取类目发布属性信息 offerPostFeatures.get -- version: 1
            OfferPostFeaturesGetRequest offerPostFeaturesGetRequest = new OfferPostFeaturesGetRequest();
            offerPostFeaturesGetRequest.categoryID = 1031910;
            OfferPostFeaturesGetResponse OfferPostFeaturesGetResponse = defaultAliClient.Execute(offerPostFeaturesGetRequest);
            Console.WriteLine(OfferPostFeaturesGetResponse);

            //根据类目ID获取商品发布类目信息 category.getPostCatList -- version: 1
            CategoryGetPostCatListRequest categoryGetPostCatListRequest = new CategoryGetPostCatListRequest();
            categoryGetPostCatListRequest.catIDs = "1031910,10166";
            CategoryGetPostCatListResponse categoryGetPostCatListResponse = defaultAliClient.Execute(categoryGetPostCatListRequest);
            Console.WriteLine(categoryGetPostCatListResponse);

            ///本接口实现阿里巴巴中文站登录会员,根据交易信息获取当前卖家的会员信息
            AcrmCustomerTradeGetRequest acrmCustomerTradeGetRequest = new AcrmCustomerTradeGetRequest();
            acrmCustomerTradeGetRequest.memberId = "testfree";
            acrmCustomerTradeGetRequest.access_token = accessTokenResponse.accessToken;
            AcrmCustomerTradeGetResponse acrmCustomerTradeGetResponse = defaultAliClient.Execute(acrmCustomerTradeGetRequest);
            Console.WriteLine(acrmCustomerTradeGetResponse);

            ///查询某个memberId下面所有的分组标签
            AcrmGroupsGetRequest acrmGroupsGetRequest = new AcrmGroupsGetRequest();
            acrmGroupsGetRequest.memberId = "testfree";
            acrmGroupsGetRequest.access_token = accessTokenResponse.accessToken;
            AcrmGroupsGetResponse AcrmGroupsGetResponse = defaultAliClient.Execute(acrmGroupsGetRequest);
            Console.WriteLine(AcrmGroupsGetResponse);

            ///本接口实现阿里巴巴中文站登录会员,根据标签获取当前卖家的会员信息
            AcrmCustomerGroupGetRequest acrmCustomerGroupGetRequest = new AcrmCustomerGroupGetRequest();
            acrmCustomerGroupGetRequest.memberId = "testfree";
            acrmCustomerGroupGetRequest.access_token = accessTokenResponse.accessToken;
            acrmCustomerGroupGetRequest.groupId = 8416600;
            acrmCustomerGroupGetRequest.pageNum = 1;
            acrmCustomerGroupGetRequest.pageSize = 20;
            AcrmCustomerGroupGetResponse acrmCustomerGroupGetResponse = defaultAliClient.Execute(acrmCustomerGroupGetRequest);
            Console.WriteLine(acrmCustomerGroupGetResponse);

            ///本接口实现阿里巴巴中文站登录会员,根据等级获取当前卖家的会员信息
            AcrmCustomerRelationGetRequest AcrmCustomerRelationGetRequest = new AcrmCustomerRelationGetRequest();
            AcrmCustomerRelationGetRequest.memberId = "testfree";
            AcrmCustomerRelationGetRequest.access_token = accessTokenResponse.accessToken;
            AcrmCustomerRelationGetRequest.level = 1;
            AcrmCustomerRelationGetRequest.pageNum = 1;
            AcrmCustomerRelationGetRequest.pageSize = 20;
            AcrmCustomerRelationGetResponse AcrmCustomerRelationGetResponse = defaultAliClient.Execute(AcrmCustomerRelationGetRequest);
            Console.WriteLine(AcrmCustomerRelationGetResponse);

            ///新接口查询当前会话会员的交易订单列表
            OrderListInfoRequest orderListInfoRequest = new OrderListInfoRequest();
            orderListInfoRequest.access_token = accessTokenResponse.accessToken;
            orderListInfoRequest.sellerMemberId = "testfree";
            orderListInfoRequest.pageSize = 20;
            orderListInfoRequest.page = 1;
            OrderListInfoResponse OrderListInfoResponse = defaultAliClient.Execute(orderListInfoRequest);
            Console.WriteLine(OrderListInfoResponse);

            ///新本接口查询当前会话会员的交易订单详情
            NewTradeOrderDetailGetRequest newTradeOrderDetailGetRequest = new NewTradeOrderDetailGetRequest();
            newTradeOrderDetailGetRequest.access_token = accessTokenResponse.accessToken;
            newTradeOrderDetailGetRequest.id = 440136255012834;
            NewTradeOrderDetailGetResponse newtradeOrderDetailGetResponse = defaultAliClient.Execute(newTradeOrderDetailGetRequest);
            Console.WriteLine(newtradeOrderDetailGetResponse);

            ///新版查询订单列表,不包含用户的隐私数据;适用于查询卖家和买家的订单列表
            NewTradeOrderListGetRequest newTradeOrderListGetRequest = new NewTradeOrderListGetRequest();
            newTradeOrderListGetRequest.access_token = accessTokenResponse.accessToken;
            newTradeOrderListGetRequest.buyerMemberId = "testfree";
            NewTradeOrderListGetResponse newTradeOrderListGetResponse = defaultAliClient.Execute(newTradeOrderListGetRequest);
            Console.WriteLine(newTradeOrderListGetResponse);

            ///用户在发布offer时候,需要选择对应的发布类目,类目作弊就是用来检测选择的类目跟发布的offer信息是否匹配
            SearchCategoryCheatingRequest searchCategoryCheatingRequest = new SearchCategoryCheatingRequest();
            searchCategoryCheatingRequest.userid = "testfree";
            searchCategoryCheatingRequest.title = "喷泉水景是单价的offer22";
            searchCategoryCheatingRequest.catid = "30";
            SearchCategoryCheatingResponse searchCategoryCheatingResponse = defaultAliClient.Execute(searchCategoryCheatingRequest);
            Console.WriteLine(searchCategoryCheatingResponse.body);

            ///用来判断,用户标题和属性中填写的信息是否一致,是否存在冲突的关键属性
            SearchTitlePropertiesInconsistentRequest searchTitlePropertiesInconsistentRequest = new SearchTitlePropertiesInconsistentRequest();
            searchTitlePropertiesInconsistentRequest.catid = "1046737";
            searchTitlePropertiesInconsistentRequest.title = "喷泉水景是单价的offer22";
            searchTitlePropertiesInconsistentRequest.brief = "产品类别:洗衣液 品牌:Tide/汰渍";
            SearchTitlePropertiesInconsistentResponse searchTitlePropertiesInconsistentResponse = defaultAliClient.Execute(searchTitlePropertiesInconsistentRequest);
            Console.WriteLine(searchTitlePropertiesInconsistentResponse.body);

            ///判断用户填写的属性是否存在滥用,比如属性值多个重复使用,属性值过长,以及属性值无意义等。
            SearchPropertiesAbuseRequest searchPropertiesAbuseRequest = new SearchPropertiesAbuseRequest();
            searchPropertiesAbuseRequest.catid = "1046737";
            searchPropertiesAbuseRequest.brief = "产品类别:洗衣液 品牌:Tide/汰渍 货号:TZ-200 类型:浓缩型 适用范围:所有衣物 香型:自然 净含量:200-350g/ml 产地:中国 箱装数量:30";
            SearchPropertiesAbuseResponse searchPropertiesAbuseResponse = defaultAliClient.Execute(searchPropertiesAbuseRequest);
            Console.WriteLine(searchPropertiesAbuseResponse.body);

            SearchTitleStuffingReqeust searchTitleStuffingReqeust = new SearchTitleStuffingReqeust();
            searchTitleStuffingReqeust.query = "ABB 品牌 品牌ABB口罩 防护口罩";
            SearchTitleStuffingResponse SearchTitleStuffingResponse = defaultAliClient.Execute(searchTitleStuffingReqeust);
            Console.WriteLine(SearchTitleStuffingResponse.body);

            ///阿里巴巴中国网站会员开启或关闭自定义分类功能
            OfferGroupSetRequest offerGroupSetRequest = new OfferGroupSetRequest();
            offerGroupSetRequest.access_token = accessTokenResponse.accessToken;
            offerGroupSetRequest.switchType = "on";
            OfferGroupSetResponse offerGroupSetResponse = defaultAliClient.Execute(offerGroupSetRequest);
            Console.WriteLine(offerGroupSetResponse);

            ///获取指定会员(供应商)的自定义商品分类信息
            CategoryGetSelfCatlistRequest categoryGetSelfCatlistRequest = new CategoryGetSelfCatlistRequest();
            categoryGetSelfCatlistRequest.memberId = "testfree";
            CategoryGetSelfCatlistResponse CategoryGetSelfCatlistResponse = defaultAliClient.Execute(categoryGetSelfCatlistRequest);
            Console.WriteLine(CategoryGetSelfCatlistResponse.body);

            ///阿里巴巴中国网站会员开启或关闭自定义分类功能
            OfferGroupSetRequest offerGroupSetRequest1 = new OfferGroupSetRequest();
            offerGroupSetRequest1.access_token = accessTokenResponse.accessToken;
            offerGroupSetRequest1.switchType = "off";
            OfferGroupSetResponse offerGroupSetResponse1 = defaultAliClient.Execute(offerGroupSetRequest1);
            Console.WriteLine(offerGroupSetResponse1);

            ///获取阿里巴巴中国网站会员是否已经开启自定义分类功能
            OfferGroupHasOpenedRequest offerGroupHasOpenedRequest = new OfferGroupHasOpenedRequest();
            offerGroupHasOpenedRequest.memberId = "testfree";
            OfferGroupHasOpenedResponse offerGroupHasOpenedResponse = defaultAliClient.Execute(offerGroupHasOpenedRequest);
            Console.WriteLine(offerGroupHasOpenedResponse);

            ///批量获取指定产品所属的自定义分类ID
            UserCategoryGetOfferIdsRequest userCategoryGetOfferIdsRequest = new UserCategoryGetOfferIdsRequest();
            userCategoryGetOfferIdsRequest.access_token = accessTokenResponse.accessToken;
            userCategoryGetOfferIdsRequest.offerIds = "37115077409;37953104410";
            UserCategoryGetOfferIdsResponse userCategoryGetOfferIdsResponse = defaultAliClient.Execute(userCategoryGetOfferIdsRequest);
            Console.WriteLine(userCategoryGetOfferIdsResponse.toReturn);

            ///批量添加多个产品到一个自定义分类下
            UserCategoryOffersAddRequest userCategoryOffersAddRequest = new UserCategoryOffersAddRequest();
            userCategoryOffersAddRequest.offerIds = "37115077409";
            userCategoryOffersAddRequest.groupId = 35382752;
            userCategoryOffersAddRequest.access_token = accessTokenResponse.accessToken;
            UserCategoryOffersAddResponse userCategoryOffersAddResponse = defaultAliClient.Execute(userCategoryOffersAddRequest);
            Console.WriteLine(userCategoryOffersAddResponse);

            ///本接口实现通过数据接口的形式,批量移除多个产品的一个自定义分类
            UserCategoryOffersRemoveRequest userCategoryOffersRemoveRequest = new UserCategoryOffersRemoveRequest();
            userCategoryOffersRemoveRequest.offerIds = "37115077409";
            userCategoryOffersRemoveRequest.groupId = 35382752;
            userCategoryOffersRemoveRequest.access_token = accessTokenResponse.accessToken;
            UserCategoryOffersRemoveResponse userCategoryOffersRemoveResponse = defaultAliClient.Execute(userCategoryOffersRemoveRequest);
            Console.WriteLine(userCategoryOffersRemoveResponse);

            ///
            ///ISV获取自己名下的应用最近一个月的订购的订单信息列表。
            ///
            AppOrderGetRequest appOrderGetRequest = new AppOrderGetRequest();
            appOrderGetRequest.appKey = "1002071";
            appOrderGetRequest.gmtCreate = DateTime.Now.AddDays(-500);
            AppOrderGetResponse appOrderGetResponse = defaultAliClient.Execute(appOrderGetRequest);
            appOrderGetResponse = appOrderGetResponse.format();
            Console.WriteLine(appOrderGetResponse);
        }
Exemplo n.º 39
0
        //static void Main(string[] args)
        static void testMain(string[] args)
        {
            ///获取accesstoken示例,注意有效期
            DefaultAliClient defaultAliClient = new DefaultAliClient("https://gw.open.1688.com/openapi/", "1002071", "WsRIC:O6CF2");
            AccessTokenRequest accessTokenRequest = new AccessTokenRequest();
            accessTokenRequest.account = "testfree66"; //你的1688 memberId
            accessTokenRequest.password = "******"; //你的密码
            AccessTokenResponse accessTokenResponse = defaultAliClient.Execute(accessTokenRequest);
            Jayrock.Json.JsonTextWriter writer = new Jayrock.Json.JsonTextWriter();
            Jayrock.Json.Conversion.JsonConvert.Export(accessTokenResponse, writer);
            string str = writer.ToString();
            Console.WriteLine(str);

            ///获取阿里巴巴中国网站会员已发布的产品信息列表 offer.getPublishOfferList 示例
            PublishOfferListRequest publishOfferListRequest = new PublishOfferListRequest();
            publishOfferListRequest.access_token = accessTokenResponse.accessToken;
            publishOfferListRequest.type = "SALE";
            publishOfferListRequest.pageSize = 10;
            publishOfferListRequest.page = 2;
            publishOfferListRequest.returnFields = new string[] { "offerId", "subject", "productFeatureList", "details", "memberId", "postCategryId", "saledCount", "amountOnSale", "priceRanges", "unit", "gmtModified", "imageList" };
            PublishOfferListResponse publishOfferListResponse = defaultAliClient.Execute(publishOfferListRequest);
            Console.WriteLine(publishOfferListResponse.toReturn);
            //获取阿里的产品id跟物料编号的对应关系
            foreach(OfferDetailInfo offerDetailInfo in publishOfferListResponse.toReturn)
            {
                foreach (ProductFeatureInfo productFeatureInfo in offerDetailInfo.productFeatureList)
                {
                    if (productFeatureInfo.name.Equals("物料编号"))
                    {
                        Console.WriteLine("产品Id:" + offerDetailInfo.offerId + "  物料编号:" + productFeatureInfo.value);
                    }
                }
            }
            Jayrock.Json.JsonTextWriter writer2 = new Jayrock.Json.JsonTextWriter();
            Jayrock.Json.Conversion.JsonConvert.Export(publishOfferListResponse, writer2);
            string str2 = writer2.ToString();
            Console.WriteLine(str2);

            ///获取阿里巴巴中国网站会员所有的产品信息列表 offer.getAllOfferList -- version: 1 示例
            AllOfferListRequest allOfferListRequest = new AllOfferListRequest();
            allOfferListRequest.access_token = accessTokenResponse.accessToken;
            allOfferListRequest.type = "SALE";
            allOfferListRequest.returnFields = new string[] { "offerId", "subject", "productFeatureList", "details", "memberId", "postCategryId", "saledCount", "amountOnSale", "priceRanges", "unit", "gmtModified", "imageList" };
            PublishOfferListResponse publishOfferListResponse1 = defaultAliClient.Execute(allOfferListRequest);
            Console.WriteLine(publishOfferListResponse1.toReturn);

            ///查询单个产品信息 offer.get -- version: 1
            OfferQueryRequest offerQueryRequest = new OfferQueryRequest();
               // offerQueryRequest.access_token = accessTokenResponse.accessToken;
            offerQueryRequest.offerId = 36379282867;
            offerQueryRequest.returnFields = new string[] { "skuList", "offerId", "subject", "productFeatureList", "details", "memberId", "postCategryId", "saledCount", "amount", "amountOnSale", "priceRanges", "unit", "gmtModified", "imageList" };
            OfferResponse offerResponse = defaultAliClient.Execute(offerQueryRequest);
            Console.WriteLine(offerResponse.toReturn.ToString());

            ///增量修改产品库存 offer.modify.stock -- version: 1
            OfferModifyStockRequest offerModifyStockRequest = new OfferModifyStockRequest();
            offerModifyStockRequest.offerId = 36379282867;//产品id
            offerModifyStockRequest.offerAmountChange = 1; //+表示增加,负表示减少
            offerModifyStockRequest.access_token = accessTokenResponse.accessToken;
            Dictionary<string, string> skuAmountChange = new Dictionary<string, string>();
            skuAmountChange.Add("8a83875664478078358187ed938f4bab", "1");//如果是sku 产品,则需要修改sku的库存
            offerModifyStockRequest.skuAmountChange = skuAmountChange;
            OfferModifyStockResponse offerModifyStockResponse = defaultAliClient.Execute(offerModifyStockRequest);
            Console.WriteLine(offerModifyStockResponse);

            ///offer.modify.increment 增量修改offer(该接口只支持价格和标题的增量修改!请慎用!)
            OfferModifyIncrementRequest offerModifyIncrementRequest = new OfferModifyIncrementRequest();
            offerModifyIncrementRequest.access_token = accessTokenResponse.accessToken;
            OfferModifyIncrement offer = new OfferModifyIncrement();
            offer.offerId = "1295193597";
            offer.priceRanges = "60:10`70:9`80:8"; //修改价格区间
            offer.subject = "c# sdk test modify title";//修改标题
            offerModifyIncrementRequest.offer = offer;
            OfferModifyIncrementResponse offerModifyIncrementResponse = defaultAliClient.Execute(offerModifyIncrementRequest);
            Console.WriteLine(offerModifyIncrementResponse);

            ///获取提供该服务的物流公司列表 e56.logistics.companies.get -- version: 1
            LogisticsCompaniesGetRequest logisticsCompaniesGetRequest = new LogisticsCompaniesGetRequest();
            logisticsCompaniesGetRequest.access_token = accessTokenResponse.accessToken;
            logisticsCompaniesGetRequest.memberId = "testfree";
            logisticsCompaniesGetRequest.serviceType = "ZX";
            LogisticsCompaniesGetResponse logisticsCompaniesGetResponse = defaultAliClient.Execute(logisticsCompaniesGetRequest);
            Console.WriteLine(logisticsCompaniesGetResponse);

            ///用户调用该接口可实现自己联系发货(线下物流),使用该接口发货,交易订单状态会直接变成卖家已发货。不支持货到付款、在线下单类型的订单。e56.logistics.offline.send -- version: 1
            LogisticsOfflineSendRequest logisticsOfflineSendRequest = new LogisticsOfflineSendRequest();
            logisticsOfflineSendRequest.memberId = "testfree";
            logisticsOfflineSendRequest.orderId = "404252368801798";
            logisticsOfflineSendRequest.orderEntryIds = "404252368801798";
            logisticsOfflineSendRequest.tradeSourceType = "cbu-trade";
            logisticsOfflineSendRequest.logisticsCompanyId = "3"; //物流公司id
            logisticsOfflineSendRequest.selfCompanyName = "中通速递";//物流公司名称
            logisticsOfflineSendRequest.logisticsBillNo = "768070181853";//运单号
            logisticsOfflineSendRequest.gmtSystemSend = "2013-10-23 11:21:35";
            logisticsOfflineSendRequest.gmtLogisticsCompanySend = "2013-10-23 11:21:35";
            logisticsOfflineSendRequest.access_token = accessTokenResponse.accessToken;
            //LogisticsOfflineSendResponse logisticsOfflineSendResponse = defaultAliClient.Execute(logisticsOfflineSendRequest);
            //Console.WriteLine(logisticsOfflineSendResponse);

            ///本接口实现阿里巴巴中文站登录会员,根据交易信息获取当前卖家的会员信息
            AcrmCustomerTradeGetRequest acrmCustomerTradeGetRequest = new AcrmCustomerTradeGetRequest();
            acrmCustomerTradeGetRequest.memberId = "testfree";
            acrmCustomerTradeGetRequest.access_token = accessTokenResponse.accessToken;
            acrmCustomerTradeGetRequest.pageSize = 100;
            acrmCustomerTradeGetRequest.pageNum = 2;
            AcrmCustomerTradeGetResponse acrmCustomerTradeGetResponse = defaultAliClient.Execute(acrmCustomerTradeGetRequest);
            Console.WriteLine(acrmCustomerTradeGetResponse);

            ///查询某个memberId下面所有的分组标签
            AcrmGroupsGetRequest acrmGroupsGetRequest = new AcrmGroupsGetRequest();
            acrmGroupsGetRequest.memberId = "testfree";
            acrmGroupsGetRequest.access_token = accessTokenResponse.accessToken;
            AcrmGroupsGetResponse AcrmGroupsGetResponse = defaultAliClient.Execute(acrmGroupsGetRequest);
            Console.WriteLine(AcrmGroupsGetResponse);

            ///本接口实现阿里巴巴中文站登录会员,根据标签获取当前卖家的会员信息
            AcrmCustomerGroupGetRequest acrmCustomerGroupGetRequest = new AcrmCustomerGroupGetRequest();
            acrmCustomerGroupGetRequest.memberId = "testfree";
            acrmCustomerGroupGetRequest.access_token = accessTokenResponse.accessToken;
            acrmCustomerGroupGetRequest.groupId = 8416600;
            acrmCustomerGroupGetRequest.pageNum = 1;
            acrmCustomerGroupGetRequest.pageSize = 20;
            AcrmCustomerGroupGetResponse acrmCustomerGroupGetResponse = defaultAliClient.Execute(acrmCustomerGroupGetRequest);
            Console.WriteLine(acrmCustomerGroupGetResponse);

            ///本接口实现阿里巴巴中文站登录会员,根据等级获取当前卖家的会员信息
            AcrmCustomerRelationGetRequest AcrmCustomerRelationGetRequest = new AcrmCustomerRelationGetRequest();
            AcrmCustomerRelationGetRequest.memberId = "testfree";
            AcrmCustomerRelationGetRequest.access_token = accessTokenResponse.accessToken;
            AcrmCustomerRelationGetRequest.level = 1;
            AcrmCustomerRelationGetRequest.pageNum = 1;
            AcrmCustomerRelationGetRequest.pageSize = 20;
            AcrmCustomerRelationGetResponse AcrmCustomerRelationGetResponse = defaultAliClient.Execute(AcrmCustomerRelationGetRequest);
            Console.WriteLine(AcrmCustomerRelationGetResponse);
        }