public void StartFlow(string responseType, string scope)
        {
            // create URI to auth endpoint
            var authorizeRequest =
                new AuthorizeRequest("https://xamarinoidcsamplests.azurewebsites.net/identity/connect/authorize");

            // note: change URI to wherever you deployed your STS (CTRL-SHIFT-F is your friend :)).
            // For use with IIS Express, check https://www.github.com/KevinDockx/XamarinFormsOIDCSample.

            // dictionary with values for the authorize request
            var dic = new Dictionary <string, string>();

            dic.Add("client_id", "xamarinsampleimplicit");
            dic.Add("response_type", responseType);
            dic.Add("scope", scope);
            dic.Add("redirect_uri", "https://xamarin-oidc-sample/redirect");
            dic.Add("nonce", Guid.NewGuid().ToString("N"));

            // add CSRF token to protect against cross-site request forgery attacks.
            _currentCSRFToken = Guid.NewGuid().ToString("N");
            dic.Add("state", _currentCSRFToken);

            var authorizeUri = authorizeRequest.Create(dic);

            // or use CreateAuthorizeUrl, passing in the values we defined in the dictionary.
            // authorizeRequest.CreateAuthorizeUrl("xamarinsampleimplicit", ...);

            wvLogin.Source    = authorizeUri;
            wvLogin.IsVisible = true;
        }
        public AuthorizeResponse Authorize([FromBody]
                                           AuthorizeRequest authorizeRequest)
        {
            try
            {
                var value = RsaHelper
                            .DecryptString(authorizeRequest.EncryptedToken,
                                           _asymmetricEncryptionSettings.PublicKey,
                                           false, true);
                var token = _tokenService.GetTokenByTypeAndValue(AccessTokenType, value);

                var claims = new List <Claim>
                {
                    new Claim("sub", token.Author)
                };

                var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);
                identity.AddClaims(claims);

                HttpContext.User = new ClaimsPrincipal(identity);

                _tokenService.Delete(token.Id);

                return(new AuthorizeResponse());
            }
            catch (Exception ex)
            {
                return(new AuthorizeResponse
                {
                    Success = false,
                    Message = ex.Message
                });
            }
        }
Esempio n. 3
0
        /// <summary>
        ///     Returns a link to a login page location.
        ///     HTTP Method: post
        ///     Endpoint: /restapi/oauth/authorize
        /// </summary>
        public async Task <string> Post(AuthorizeRequest authorizeRequest, RestRequestConfig restRequestConfig = null)
        {
            var dict = new Dictionary <string, string>();

            Utils.GetPairs(authorizeRequest).ToList().ForEach(t => dict.Add(t.name, t.value.ToString()));
            return(await rc.Post <string>(Path(), new FormUrlEncodedContent(dict), null, restRequestConfig));
        }
        public string CreateAuthorizeUrl(
            string clientId,
            string responseType,
            string scope               = null,
            string redirectUri         = null,
            string state               = null,
            string nonce               = null,
            string loginHint           = null,
            string acrValues           = null,
            string responseMode        = null,
            string codeChallenge       = null,
            string codeChallengeMethod = null,
            object extra               = null)
        {
            var url = new AuthorizeRequest(AuthorizeEndpoint).CreateAuthorizeUrl(
                clientId: clientId,
                responseType: responseType,
                scope: scope,
                redirectUri: redirectUri,
                state: state,
                nonce: nonce,
                loginHint: loginHint,
                acrValues: acrValues,
                responseMode: responseMode,
                codeChallenge: codeChallenge,
                codeChallengeMethod: codeChallengeMethod,
                extra: extra);

            return(url);
        }
        public static BPWXmlRequest <AuthorizeRequestXML> MapAuthorizeRequest(AuthorizeRequest authorize, string shopId)
        {
            var requestData = new AuthorizeRequestXML();

            requestData.AccountingMode = authorize.AccountingMode;
            requestData.Acquirer       = authorize.Acquirer;
            requestData.Amount         = authorize.Amount;
            requestData.Antifraud      = authorize.AntiFraud;
            requestData.CreatePanAlias = authorize.CreatePanAlias;
            requestData.Currency       = authorize.Currency;
            requestData.CVV2           = authorize.CVV2;
            requestData.EmailCH        = authorize.EmailCh;
            requestData.ExpDate        = authorize.ExpDate;
            requestData.Exponent       = authorize.Exponent;
            requestData.IpAddress      = authorize.IpAddress;
            requestData.Name           = authorize.Name;
            requestData.Network        = authorize.Network;
            requestData.OpDescr        = authorize.OpDescr;
            requestData.Options        = authorize.Options;
            requestData.OrderID        = authorize.OrderId;
            requestData.PAN            = authorize.Pan;
            requestData.ProductRef     = authorize.ProductRef;
            requestData.Surname        = authorize.Surname;
            requestData.TaxID          = authorize.TaxId;
            requestData.Userid         = authorize.UserId;
            requestData.UsrAuthFlag    = authorize.UsrAuthFlag;

            var request = new BPWXmlRequest <AuthorizeRequestXML>(requestData);

            request.SetHeaderInfo(shopId, authorize.OperatorID);
            return(request);
        }
Esempio n. 6
0
        protected async Task <string> DefaultGetAuthorizationCode(string authorizationEndpoint)
        {
            CurrentStateToken = GenerateAuthorizationStateToken();
            var request      = new AuthorizeRequest(authorizationEndpoint);
            var authorizeUri = request.CreateAuthorizeUrl(ClientId, OidcConstants.ResponseTypes.Code, Scope, RedirectUriRoot, CurrentStateToken);

            var redirectUri = await AuthUriAcquirer.GetAuthorizationUriAsync(authorizeUri, RedirectUriRoot);

            if (string.IsNullOrEmpty(redirectUri))
            {
                return(null);
            }

            var returnedStateToken = StateCodeRegex.Match(redirectUri).Groups[1].Value;

            if (returnedStateToken != CurrentStateToken)
            {
                return(null);
            }

            var authCode = AuthCodeRegex.Match(redirectUri).Groups[1].Value;

            authCode = WebUtility.UrlDecode(authCode);
            return(authCode);
        }
Esempio n. 7
0
        public void UsesContextFromFirstMembership()
        {
            var validator = new AuthorizeRequestValidator();
            var app       = _testConfig.FindApplication("test");
            var request   = new AuthorizeRequest
            {
                client_id     = "implicitclient",
                response_type = "token",
                scope         = "membership",
                redirect_uri  = "https://test2.local",
                context       = ""
            };

            var memberships = new List <IdentityMembership>();

            memberships.Add(new IdentityMembership()
            {
                IsPrimaryMember = false, MembershipID = 11234
            });
            memberships.Add(new IdentityMembership()
            {
                IsPrimaryMember = false, MembershipID = 6578
            });

            var result = validator.Validate(app, memberships, request);

            Assert.AreEqual("11234", result.context);
            Assert.IsFalse(result.HasClaimedMembership);
        }
Esempio n. 8
0
        private string GenerarTokenJWT(AuthorizeRequest usuarioInfo)
        {
            var _symmetricSecurityKey = new SymmetricSecurityKey(
                Encoding.UTF8.GetBytes(configuration["JWT:JWT_SECRET_KEY"])
                );
            var _signingCredentials = new SigningCredentials(
                _symmetricSecurityKey, SecurityAlgorithms.HmacSha256
                );
            var _Header = new JwtHeader(_signingCredentials);

            var _Claims = new[] {
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(JwtRegisteredClaimNames.NameId, usuarioInfo.Username.ToString()),
                new Claim("nombre", usuarioInfo.Username),
            };

            var _Payload = new JwtPayload(
                issuer: configuration["JWT:JWT_ISSUER_TOKEN"],
                audience: configuration["JWT:JWT_AUDIENCE_TOKEN"],
                claims: _Claims,
                notBefore: DateTime.UtcNow,
                // Expira a la 365 dias.
                expires: DateTime.UtcNow.AddDays(Convert.ToInt32(configuration["JWT:JWT_EXPIRE_MINUTES"]))
                );

            var _Token = new JwtSecurityToken(
                _Header,
                _Payload
                );

            return(new JwtSecurityTokenHandler().WriteToken(_Token));
        }
Esempio n. 9
0
        public AuthorizeResponse Authorize(AuthorizeRequest authorizeRequest)
        {
            PaymentIntent paymentIntent = _adaptee.Authorize(authorizeRequest.Amount,
                                                             authorizeRequest.IsHold,
                                                             authorizeRequest.Email,
                                                             authorizeRequest.OrdersNumber,
                                                             authorizeRequest.FirstName,
                                                             authorizeRequest.LastName,
                                                             authorizeRequest.DescriptionPayment,
                                                             authorizeRequest.PaymentMethod,
                                                             authorizeRequest.MerchantId,
                                                             authorizeRequest.TransactionIds,
                                                             authorizeRequest.UserId,
                                                             authorizeRequest.OrderId,
                                                             authorizeRequest.TransactionId,
                                                             authorizeRequest.CorrelationId);

            return(new AuthorizeResponse()
            {
                Status = paymentIntent.Status,
                PaymentId = paymentIntent.Id,
                PaymentDate = paymentIntent.Created,
                PaymentCardId = paymentIntent.PaymentMethodId,
                PaymentFee = paymentIntent.ApplicationFeeAmount
            });
        }
        private AuthorizeResponse AuthorizePayment(
            AmazonPaySettings settings,
            AmazonPayCheckoutState state,
            Store store,
            ProcessPaymentRequest request,
            Client client,
            bool synchronously,
            out AuthorizeRequest authRequest)
        {
            authRequest = new AuthorizeRequest()
                          .WithMerchantId(settings.SellerId)
                          .WithAmazonOrderReferenceId(state.OrderReferenceId)
                          .WithAuthorizationReferenceId(GetRandomId("Authorize"))
                          .WithCaptureNow(settings.TransactionType == AmazonPayTransactionType.AuthorizeAndCapture)
                          .WithCurrencyCode(ConvertCurrency(store.PrimaryStoreCurrency.CurrencyCode))
                          .WithAmount(request.OrderTotal);

            if (synchronously)
            {
                authRequest = authRequest.WithTransactionTimeout(0);
            }

            // See https://pay.amazon.com/de/developer/documentation/lpwa/201956480
            //{"SandboxSimulation": {"State":"Declined", "ReasonCode":"InvalidPaymentMethod", "PaymentMethodUpdateTimeInMins":5}}
            //{"SandboxSimulation": {"State":"Declined", "ReasonCode":"AmazonRejected"}}
            //if (settings.UseSandbox)
            //{
            //	var authNote = _services.Settings.GetSettingByKey<string>("SmartStore.AmazonPay.SellerAuthorizationNote");
            //  authRequest = authRequest.WithSellerAuthorizationNote(authNote);
            //}

            var authResponse = client.Authorize(authRequest);

            return(authResponse);
        }
Esempio n. 11
0
        private async void btnOidcTokenHybrid_Click(object sender, EventArgs e)
        {
            var request = new AuthorizeRequest(Preferences.AuthorizationEndpoint);

            var url = request.CreateAuthorizeUrl(
                clientId: txtOidcClientIdHybrid.Text,
                responseType: OidcConstants.ResponseTypes.CodeIdTokenToken,
                responseMode: OidcConstants.ResponseModes.FormPost,
                scope: txtOidcScopesHybrid.Text,
                redirectUri: txtOidcRedirectUriHybrid.Text,
                state: CryptoRandom.CreateUniqueId(),
                nonce: CryptoRandom.CreateUniqueId());

            LaunchBrowser(url);

            Tuple <string, string, string> tuple = await GetResponseFromAuthorizationServer(txtOidcRedirectUriHybrid.Text + "/", "hybrid");

            txtOidcCodeHybrid.Text              = tuple.Item1;
            txtOidcIdTokenHybrid.Text           = tuple.Item2;
            txtOidcIdTokenHybridParsed.Text     = ParseJwt(tuple.Item2);
            txtOidcAccessTokenHybrid.Text       = tuple.Item3;
            txtOidcAccessTokenHybridParsed.Text = ParseJwt(tuple.Item3);

            lastAccessToken = txtOidcAccessTokenHybrid.Text;

            btnOidcGetProfileHybrid.Enabled = true;
        }
Esempio n. 12
0
        /// <summary>
        /// Authorizes a user, by email, to have access to a collection
        /// </summary>
        /// <param name="collectionName">Name of the collection to grant permission</param>
        /// <param name="userEmail">Email of the user to grant permission to</param>
        /// <param name="permission">Which permission to assign</param>
        /// <returns>True if succesfull</returns>
        public async Task <bool> AuthorizeUser(string collectionName, string userEmail, CollectionPermission permission)
        {
            AuthorizeRequest requestBody = new AuthorizeRequest(APIKey, collectionName, userEmail, permission);

            HttpResponseMessage response = null;

            try
            {
                response = await Client.PostAsync(Endpoints.AuthorizeUser, IndicoCustomRequest.StringContentFromObject(requestBody));

                HTTPMagic.CheckStatus(response);
                string responseBody = await response.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <SimpleResponse>(responseBody).Results);
            }
            catch (HttpRequestException hre)
            {
                throw new IndicoAPIException(Resources.Application_API_Request_Failure, hre);
            }
            finally
            {
                if (response != null)
                {
                    response.Dispose();
                }
            }
        }
Esempio n. 13
0
            //AUTHENTICATION FLOW
            public static string SpotifyAuthorization(AuthorizeRequest authorizeRequest)
            {
                string scopes = "";

                authorizeRequest.Scope.ForEach(s => scopes += s + "%20");
                return($"{root}/authorize?client_id={authorizeRequest.Client_Id}&response_type=code&redirect_uri={authorizeRequest.Redirect_IUri}&scope={scopes}&state={authorizeRequest.State}");
            }
Esempio n. 14
0
        public void UsesContextThatIsPrimaryIfNoneInRequest()
        {
            var validator = new AuthorizeRequestValidator();
            var app       = _testConfig.FindApplication("test");
            var request   = new AuthorizeRequest
            {
                client_id     = "implicitclient",
                response_type = "token",
                scope         = "membership",
                redirect_uri  = "https://test2.local",
                context       = ""
            };

            var memberships = new List <IdentityMembership>();

            memberships.Add(new IdentityMembership()
            {
                CanAccessNeeds = true, MembershipID = 11234
            });
            memberships.Add(new IdentityMembership()
            {
                IsPrimaryMember = true, MembershipID = 6578
            });

            var result = validator.Validate(app, memberships, request);

            Assert.AreEqual("6578", result.context);
        }
Esempio n. 15
0
        public async Task <IHttpActionResult> Authorize(AuthorizeRequest request)
        {
            if (request != null)
            {
                using (var scope = DependencyConfig.Container.BeginLifetimeScope())
                {
                    var service = scope.Resolve <IWalletService>();
                    var user    = await service.Authorize(request.Username, request.Password);

                    if (user != null)
                    {
                        return(Ok(new AuthorizeResponse {
                            User = user
                        }));
                    }
                    else
                    {
                        return(Content(HttpStatusCode.BadRequest, new { ErrorMessage = "Please, verify your username/password." }));
                    }
                }
            }
            else
            {
                return(BadRequest());
            }
        }
        public void AuthorizeApiCall()
        {
            string uniqueReferenceId = GenerateRandomUniqueString();

            AuthorizeRequest authRequestParameters = new AuthorizeRequest();
            authRequestParameters.WithAmazonOrderReferenceId(Session["amazonOrderReferenceId"].ToString())
                .WithAmount(decimal.Parse(Session["amount"].ToString()))
                .WithCurrencyCode(Regions.currencyCode.USD)
                .WithAuthorizationReferenceId(uniqueReferenceId)
                .WithTransactionTimeout(0)
                .WithCaptureNow(true)
                .WithSellerAuthorizationNote("Note");

            AuthorizeResponse authResponse = client.Authorize(authRequestParameters);

            // Authorize was not a success Get the Error code and the Error message
            if (!authResponse.GetSuccess())
            {
                string errorCode = authResponse.GetErrorCode();
                string errorMessage = authResponse.GetErrorMessage();
                authorize.InnerHtml = authResponse.GetJson();
            }
            else
            {
                amazonAuthorizationId = authResponse.GetAuthorizationId();
                captureNow = authResponse.GetCaptureNow();

                // If captureNow was true then the capture has already happened. save the capture id(s).
                if (captureNow)
                {
                    amazonCaptureIdList = authResponse.GetCaptureIdList();
                }
                authorize.InnerHtml = authResponse.GetJson();
            }
        }
Esempio n. 17
0
        public async Task CallBack(string code)
        {
            if (string.IsNullOrEmpty(code))
            {
                var state = CryptoRandom.CreateRandomKeyString(64);
                var nonce = CryptoRandom.CreateRandomKeyString(64);

                var request = new AuthorizeRequest(Configuration.AuthorizeEndpoint);
                var url     = request.CreateAuthorizeUrl(
                    clientId: "padmate_AuthorizationCode",
                    responseType: "code",
                    scope: "dpcontrolapiscope",
                    redirectUri: Configuration.CodeCallBackUrl,
                    state: state,
                    nonce: nonce);

                Process.Start(url);
            }
            else
            {
                var client = new TokenClient(
                    Configuration.TokenEndpoint,
                    "padmate_AuthorizationCode",
                    "padmate_authorizationcode_secret");

                var response = await client.RequestAuthorizationCodeAsync(code, Configuration.CodeCallBackUrl);

                await this.CallApi(response.AccessToken);
            }
        }
Esempio n. 18
0
        public async Task <AuthorizeResponse> Authenticate(AuthorizeRequest request)
        {
            if (string.IsNullOrEmpty(request.LoginId))
            {
                throw new Exception();
            }
            var myContent = JsonConvert.SerializeObject(request);

            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var builder = new UriBuilder(new Uri(string.Format(AuthorizeUrl, CustomerId)));
            HttpRequestMessage requests = new HttpRequestMessage(HttpMethod.Post, builder.Uri);

            requests.Content = new StringContent(myContent, Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.SendAsync(requests);

            if (response.StatusCode == HttpStatusCode.BadRequest)
            {
                throw new Exception();
            }
            if (response.EnsureSuccessStatusCode().IsSuccessStatusCode)
            {
                var res = await response.Content.ReadAsAsync <AuthorizeResponse>();

                return(res);
            }

            throw new Exception();
        }
Esempio n. 19
0
        /// <summary>
        /// Successful response returned from a Credit Card Present Authorization Only request.
        /// https://apidocs.securenet.com/docs/creditcardpresent.html?lang=JSON#authonly
        /// </summary>
        public int Credit_Card_Present_AuthorizationOnly_Request_Returns_Successfully()
        {
            // Arrange
            var request = new AuthorizeRequest
            {
                Amount = 11.00m,
                Card   = new Card
                {
                    TrackData = "%B4444333322221111^SECURENET^16041015432112345678?;4444333322221111=16041015432112345678?",
                },
                DeveloperApplication = new DeveloperApplication
                {
                    DeveloperId = 12345678,
                    Version     = "1.2"
                }
            };

            var apiContext = new APIContext();
            var controller = new PaymentsController();

            // Act
            var response = controller.ProcessRequest <AuthorizeResponse>(apiContext, request);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Success);
            Assert.IsNotNull(response.Transaction);
            Assert.IsTrue(response.Transaction.TransactionId > 0);

            return(response.Transaction.TransactionId);
        }
        public static void RunRealWorldExample()
        {
            Authorizer releasedClientAuthorizer     = new ReleasedClientAuthorizer();
            Authorizer releasedContractorAuthorizer = new ReleasedContractorAuthorizer();

            //a1.SetSuccessor(a2);
            releasedContractorAuthorizer.SetSuccessor(releasedClientAuthorizer);

            AuthorizeRequest releaseClientRequest = new AuthorizeRequest
            {
                AuthorizeType    = AuthorizeTypes.ReleasedClient,
                OrganizationName = "ReleasedClientOrgName"
            };

            releasedContractorAuthorizer.HandleAuthorization(releaseClientRequest);


            AuthorizeRequest releaseContractorRequest = new AuthorizeRequest
            {
                AuthorizeType    = AuthorizeTypes.ReleasedContractor,
                OrganizationName = "ReleasedContractorOrgName"
            };

            releasedContractorAuthorizer.HandleAuthorization(releaseContractorRequest);
        }
Esempio n. 21
0
        public void StartFlow(string responseType, string scope)
        {
            // create URI to authorize endpoint - use WebHost or SelfHost from the
            // samples solution.
            var authorizeRequest =
                new AuthorizeRequest("https://localhost:44333/core/connect/authorize");

            // dictionary with values for the authorize request
            var dic = new Dictionary <string, string>();

            dic.Add("client_id", "implicitclient");
            dic.Add("response_type", responseType);
            dic.Add("scope", scope);
            dic.Add("redirect_uri", "https://xamarin-oidc-sample/redirect");
            dic.Add("nonce", Guid.NewGuid().ToString("N"));

            // add CSRF token to protect against cross-site request forgery attacks.
            _currentCSRFToken = Guid.NewGuid().ToString("N");
            dic.Add("state", _currentCSRFToken);

            var authorizeUri = authorizeRequest.Create(dic);

            // or use CreateAuthorizeUrl, passing in the values we defined in the dictionary.
            // authorizeRequest.CreateAuthorizeUrl("implicitclient", ...);

            wvLogin.Source    = authorizeUri;
            wvLogin.IsVisible = true;
        }
Esempio n. 22
0
        public Task <AuthorizeResponse> AuthorizeAmountAsync(AuthorizeRequest authRequest)
        {
            var request = new RestRequest(Urls.TransactionsApiV1Authorize, Method.POST);

            request.AddJsonBody(authRequest);
            return(MakeRestRequest <AuthorizeResponse>(request));
        }
        public string CreateAuthorizationRequest()
        {
            // Create URI to authorization endpoint
            var authorizeRequest = new AuthorizeRequest(GlobalSetting.Instance.IdentityEndpoint);

            // Dictionary with values for the authorize request
            var dic = new Dictionary <string, string>();

            dic.Add("client_id", GlobalSetting.Instance.ClientId);
            dic.Add("client_secret", GlobalSetting.Instance.ClientSecret);
            dic.Add("response_type", "code id_token");
            dic.Add("scope", "openid profile basket orders locations marketing offline_access");
            dic.Add("redirect_uri", GlobalSetting.Instance.IdentityCallback);
            dic.Add("nonce", Guid.NewGuid().ToString("N"));
            dic.Add("code_challenge", CreateCodeChallenge());
            dic.Add("code_challenge_method", "S256");

            // Add CSRF token to protect against cross-site request forgery attacks.
            var currentCSRFToken = Guid.NewGuid().ToString("N");

            dic.Add("state", currentCSRFToken);

            var authorizeUri = authorizeRequest.Create(dic);

            return(authorizeUri);
        }
Esempio n. 24
0
        public string Authorize(AuthorizeRequest authRequest)
        {
            var uniqueId = _uniqueIdGenerator.GetUniqueId();

            _authLookup.Add(uniqueId, new Authorization(authRequest.CardNumber, authRequest.Currency, authRequest.Amount));

            return(uniqueId);
        }
        /// <summary>Asynchronous as long as we do not set TransactionTimeout to 0. So transaction is always in pending state after return.</summary>
        public void Authorize(AmazonPayClient client, ProcessPaymentResult result, List<string> errors, string orderReferenceId, decimal orderTotalAmount, string currencyCode, string orderGuid)
        {
            var request = new AuthorizeRequest();
            request.SellerId = client.Settings.SellerId;
            request.AmazonOrderReferenceId = orderReferenceId;
            request.AuthorizationReferenceId = GetRandomId("Authorize");
            request.CaptureNow = (client.Settings.TransactionType == AmazonPayTransactionType.AuthorizeAndCapture);
            //request.SellerAuthorizationNote = client.Settings.SellerNoteAuthorization.Truncate(256);

            request.AuthorizationAmount = new Price()
            {
                Amount = orderTotalAmount.ToString("0.00", CultureInfo.InvariantCulture),
                CurrencyCode = currencyCode ?? "EUR"
            };

            var response = client.Service.Authorize(request);

            if (response != null && response.IsSetAuthorizeResult() && response.AuthorizeResult.IsSetAuthorizationDetails())
            {
                var details = response.AuthorizeResult.AuthorizationDetails;

                result.AuthorizationTransactionId = details.AmazonAuthorizationId;
                result.AuthorizationTransactionCode = details.AuthorizationReferenceId;

                if (details.IsSetAuthorizationStatus())
                {
                    var status = details.AuthorizationStatus;

                    if (status.IsSetState())
                    {
                        result.AuthorizationTransactionResult = status.State.ToString();
                    }

                    if (request.CaptureNow && details.IsSetIdList() && details.IdList.IsSetmember() && details.IdList.member.Count() > 0)
                    {
                        result.CaptureTransactionId = details.IdList.member[0];
                    }

                    if (status.IsSetReasonCode())
                    {
                        if (status.ReasonCode.IsCaseInsensitiveEqual("InvalidPaymentMethod") || status.ReasonCode.IsCaseInsensitiveEqual("AmazonRejected") ||
                            status.ReasonCode.IsCaseInsensitiveEqual("ProcessingFailure") || status.ReasonCode.IsCaseInsensitiveEqual("TransactionTimedOut") ||
                            status.ReasonCode.IsCaseInsensitiveEqual("TransactionTimeout"))
                        {
                            if (status.IsSetReasonDescription())
                                errors.Add("{0}: {1}".FormatWith(status.ReasonCode, status.ReasonDescription));
                            else
                                errors.Add(status.ReasonCode);
                        }
                    }
                }
            }

            // The response to the Authorize call includes the AuthorizationStatus response element, which will be always be
            // set to Pending if you have selected the asynchronous mode of operation.

            result.NewPaymentStatus = Core.Domain.Payments.PaymentStatus.Pending;
        }
Esempio n. 26
0
        static async Task Main(string[] args)
        {
            var socket    = new System.Net.WebSockets.ClientWebSocket();
            var chargerId = "xxxx";   // id of the charger
            var password  = "******";   // any non-empty string
            var endpoint  = "xxxxxx"; //url to websocket server e.g ws://abc.com
            var auth      = Convert.ToBase64String(Encoding.UTF8.GetBytes(chargerId + ":" + password));

            socket.Options.SetRequestHeader("Authorization", "Basic " + auth);
            socket.Options.AddSubProtocol("ocpp1.6");
            var cancellationToken = CancellationToken.None;

            try
            {
                await socket.ConnectAsync(new Uri(endpoint + "/" + chargerId), cancellationToken);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw;
            }

            Console.WriteLine(socket.State); // status is opened now

            var sampleAuthReq = new AuthorizeRequest();

            sampleAuthReq.IdTag = "111"; // a correct IdTag predefined on server side

            var newMessageToSend = new TransportLayerMessage
            {
                MessageType = MessageTypes.CALL,
                UniqueId    = GenerateUniqueId(),
                Action      = sampleAuthReq.Action,
                Payload     = sampleAuthReq.ToJson()
            };

            if (socket.State == System.Net.WebSockets.WebSocketState.Open)
            {
                try
                {
                    var keystring = Console.ReadKey();
                    while (keystring.Key == ConsoleKey.S)
                    {
                        await Send(newMessageToSend.ToJson(), socket, cancellationToken);

                        keystring = Console.ReadKey();
                    }
                    Console.WriteLine("finished");
                    Console.ReadKey();
                }

                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
 public void Authorize(AuthorizeRequest request)
 {
     if (!request.Id.HasValue)
     {
         throw new ArgumentNullException(nameof(request.Id));
     }
     this._requestTable.Add(request.Id.Value.ToString(), request);
     this.Send(request);
 }
Esempio n. 28
0
        public void Authorize(AuthorizeRequest clientRequest)
        {
            ClientRequest = clientRequest;

            if (!typeof(Csla.Core.ICommandObject).IsAssignableFrom(clientRequest.ObjectType))
            {
                throw new SecurityException("Authorization Failed");
            }
        }
        protected Uri GetAuthenticationUri()
        {
            var authRequest = new AuthorizeRequest(Configuration.AuthorizeUri);
            var redirectUri = GetRedirectUri().AbsoluteUri;
            var authUrl     = authRequest.CreateAuthorizeUrl(Constants.Authentication.ClientId,
                                                             Constants.Authentication.ResponseType, Constants.Authentication.Scope,
                                                             redirectUri, nonce: GenerateNOnce());

            return(new Uri(authUrl));
        }
Esempio n. 30
0
        public ActionResult <AuthenticateSpotify> Get()  //USED TO RETURN LINK FOR CONVALIDATION SPOTIFY
        {
            string           guidString       = Convert.ToBase64String(Guid.NewGuid().ToByteArray());
            AuthorizeRequest authorizeRequest = new AuthorizeRequest(ClientId, "code", SpotifyAccessRedirectEndpoint(), guidString, Scope);
            var response = new AuthenticateSpotify()
            {
                Url = SpotifyAuthorization(authorizeRequest)
            };

            return(response);
        }
Esempio n. 31
0
        public async Task AuthorizeAndCapture_Test()
        {
            var authorization = new AuthorizeRequest
            {
                Amount = new Amount
                {
                    BaseAmount = 1000
                },
                Card = new Card
                {
                    CardPresent     = false,
                    Cvv             = "123",
                    ExpirationMonth = "12",
                    ExpirationYear  = "21",
                    Pan             = "5105105105105100"
                },
                Mid      = _merchantId,
                Terminal = new Terminal
                {
                    EntryType    = EntryType.Keypad,
                    TerminalId   = _terminalId,
                    TerminalType = TerminalType.ECommerce
                },
                Payer = new Payer
                {
                    BillingAddress = new Address
                    {
                        PostalCode = "76132"
                    }
                },
                Order = new Order
                {
                    OrderNumber = "testing"
                }
            };

            var response = await _client.AuthorizeAmountAsync(authorization);

            var capture = new CaptureRequest
            {
                TransactionId = response.TransactionId,
                Mid           = _merchantId,
                Terminal      = new Terminal
                {
                    EntryType    = EntryType.Keypad,
                    TerminalId   = _terminalId,
                    TerminalType = TerminalType.ECommerce
                }
            };

            var captureResponse = await _client.CaptureAmountAsync(capture);

            Assert.IsNotNull(capture.TransactionId);
        }
Esempio n. 32
0
        public async Task VoidCompletes_Test()
        {
            var authorization = new AuthorizeRequest
            {
                Amount = new Amount
                {
                    BaseAmount = 1000
                },
                Card = new Card
                {
                    CardPresent     = false,
                    Cvv             = "123",
                    ExpirationMonth = "12",
                    ExpirationYear  = "21",
                    Pan             = "5105105105105100"
                },
                Mid      = _merchantId,
                Terminal = new Terminal
                {
                    EntryType    = EntryType.Keypad,
                    TerminalId   = _terminalId,
                    TerminalType = TerminalType.ECommerce
                },
                Payer = new Payer
                {
                    BillingAddress = new Address
                    {
                        PostalCode = "76132"
                    }
                }
            };

            var response = await _client.AuthorizeAmountAsync(authorization);

            Assert.IsNotNull(response.TransactionId);
            Assert.IsNotNull(response.AuthCode);

            var voidRequest = new VoidRequest
            {
                Mid      = _merchantId,
                Terminal = new Terminal
                {
                    EntryType    = EntryType.Keypad,
                    TerminalId   = _terminalId,
                    TerminalType = TerminalType.ECommerce
                },
                TransactionId = response.TransactionId
            };

            var voidResponse = await _client.VoidTransactionAsync(voidRequest);

            Assert.IsNotNull(voidResponse.TransactionId);
        }
        public static AuthorizeResponse AuthorizeAction(OffAmazonPaymentsServicePropertyCollection propertiesCollection, 
            IOffAmazonPaymentsService service, string orderReferenceId, String orderAmount, int indicator, int authorizationOption)
        {
            //initiate the authorization request
            AuthorizeRequest authRequest = new AuthorizeRequest();
            authRequest.AmazonOrderReferenceId = orderReferenceId;
            authRequest.SellerId = propertiesCollection.MerchantID;
            Price price = new Price();
            //get the ordertotal object from the setOrderReference's response
            OrderTotal authOrderTotal = new OrderTotal();
            price.Amount = orderAmount;
            price.CurrencyCode = propertiesCollection.CurrencyCode;
            authRequest.AuthorizationAmount = price;
            authRequest.AuthorizationReferenceId = orderReferenceId.Replace('-', 'a') + "authRef" + indicator.ToString();
            //If Fast Authorization is required, set the transaction timeout in the request to 0.
            if (authorizationOption == 2)
            {
                authRequest.TransactionTimeout = 0;
            }

            return AuthorizeSample.InvokeAuthorize(service, authRequest);
        }
        public static AuthorizeResponse InvokeAuthorize(IOffAmazonPaymentsService service, AuthorizeRequest request)
        {
            AuthorizeResponse response = null;
            try
            {
                response = service.Authorize(request);

                Console.WriteLine("Service Response");
                Console.WriteLine("=============================================================================");
                Console.WriteLine();
                Console.WriteLine("        AuthorizeResponse");
                if (response.IsSetAuthorizeResult())
                {
                    Console.WriteLine("            AuthorizeResult");
                    AuthorizeResult authorizeResult = response.AuthorizeResult;
                    if (authorizeResult.IsSetAuthorizationDetails())
                    {
                        Console.WriteLine("                AuthorizationDetails");
                        AuthorizationDetails authorizationDetails = authorizeResult.AuthorizationDetails;
                        if (authorizationDetails.IsSetAmazonAuthorizationId())
                        {
                            Console.WriteLine("                    AmazonAuthorizationId");
                            Console.WriteLine("                        {0}", authorizationDetails.AmazonAuthorizationId);
                        }
                        if (authorizationDetails.IsSetAuthorizationReferenceId())
                        {
                            Console.WriteLine("                    AuthorizationReferenceId");
                            Console.WriteLine("                        {0}", authorizationDetails.AuthorizationReferenceId);
                        }
                        if (authorizationDetails.IsSetAuthorizationBillingAddress())
                        {
                            Console.WriteLine("                    AuthorizationBillingAddress");
                            Address authorizationBillingAddress = authorizationDetails.AuthorizationBillingAddress;
                            if (authorizationBillingAddress.IsSetName())
                            {
                                Console.WriteLine("                            Name");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.Name);
                            }
                            if (authorizationBillingAddress.IsSetAddressLine1())
                            {
                                Console.WriteLine("                            AddressLine1");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.AddressLine1);
                            }
                            if (authorizationBillingAddress.IsSetAddressLine2())
                            {
                                Console.WriteLine("                            AddressLine2");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.AddressLine2);
                            }
                            if (authorizationBillingAddress.IsSetAddressLine3())
                            {
                                Console.WriteLine("                            AddressLine3");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.AddressLine3);
                            }
                            if (authorizationBillingAddress.IsSetCity())
                            {
                                Console.WriteLine("                            City");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.City);
                            }
                            if (authorizationBillingAddress.IsSetCounty())
                            {
                                Console.WriteLine("                            County");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.County);
                            }
                            if (authorizationBillingAddress.IsSetDistrict())
                            {
                                Console.WriteLine("                            District");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.District);
                            }
                            if (authorizationBillingAddress.IsSetStateOrRegion())
                            {
                                Console.WriteLine("                            StateOrRegion");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.StateOrRegion);
                            }
                            if (authorizationBillingAddress.IsSetPostalCode())
                            {
                                Console.WriteLine("                            PostalCode");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.PostalCode);
                            }
                            if (authorizationBillingAddress.IsSetCountryCode())
                            {
                                Console.WriteLine("                            CountryCode");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.CountryCode);
                            }
                            if (authorizationBillingAddress.IsSetPhone())
                            {
                                Console.WriteLine("                            Phone");
                                Console.WriteLine("                                {0}", authorizationBillingAddress.Phone);
                            }
                        }
                        if (authorizationDetails.IsSetSellerAuthorizationNote())
                        {
                            Console.WriteLine("                    SellerAuthorizationNote");
                            Console.WriteLine("                        {0}", authorizationDetails.SellerAuthorizationNote);
                        }
                        if (authorizationDetails.IsSetAuthorizationAmount())
                        {
                            Console.WriteLine("                    AuthorizationAmount");
                            Price authorizationAmount = authorizationDetails.AuthorizationAmount;
                            if (authorizationAmount.IsSetAmount())
                            {
                                Console.WriteLine("                        Amount");
                                Console.WriteLine("                            {0}", authorizationAmount.Amount);
                            }
                            if (authorizationAmount.IsSetCurrencyCode())
                            {
                                Console.WriteLine("                        CurrencyCode");
                                Console.WriteLine("                            {0}", authorizationAmount.CurrencyCode);
                            }
                        }
                        if (authorizationDetails.IsSetCapturedAmount())
                        {
                            Console.WriteLine("                    CapturedAmount");
                            Price capturedAmount = authorizationDetails.CapturedAmount;
                            if (capturedAmount.IsSetAmount())
                            {
                                Console.WriteLine("                        Amount");
                                Console.WriteLine("                            {0}", capturedAmount.Amount);
                            }
                            if (capturedAmount.IsSetCurrencyCode())
                            {
                                Console.WriteLine("                        CurrencyCode");
                                Console.WriteLine("                            {0}", capturedAmount.CurrencyCode);
                            }
                        }
                        if (authorizationDetails.IsSetAuthorizationFee())
                        {
                            Console.WriteLine("                    AuthorizationFee");
                            Price authorizationFee = authorizationDetails.AuthorizationFee;
                            if (authorizationFee.IsSetAmount())
                            {
                                Console.WriteLine("                        Amount");
                                Console.WriteLine("                            {0}", authorizationFee.Amount);
                            }
                            if (authorizationFee.IsSetCurrencyCode())
                            {
                                Console.WriteLine("                        CurrencyCode");
                                Console.WriteLine("                            {0}", authorizationFee.CurrencyCode);
                            }
                        }
                        if (authorizationDetails.IsSetCreationTimestamp())
                        {
                            Console.WriteLine("                    CreationTimestamp");
                            Console.WriteLine("                        {0}", authorizationDetails.CreationTimestamp);
                        }
                        if (authorizationDetails.IsSetExpirationTimestamp())
                        {
                            Console.WriteLine("                    ExpirationTimestamp");
                            Console.WriteLine("                        {0}", authorizationDetails.ExpirationTimestamp);
                        }
                        if (authorizationDetails.IsSetAuthorizationStatus())
                        {
                            Console.WriteLine("                    AuthorizationStatus");
                            Status authorizationStatus = authorizationDetails.AuthorizationStatus;
                            if (authorizationStatus.IsSetState())
                            {
                                Console.WriteLine("                        State");
                                Console.WriteLine("                            {0}", authorizationStatus.State);
                            }
                            if (authorizationStatus.IsSetLastUpdateTimestamp())
                            {
                                Console.WriteLine("                        LastUpdateTimestamp");
                                Console.WriteLine("                            {0}", authorizationStatus.LastUpdateTimestamp);
                            }
                            if (authorizationStatus.IsSetReasonCode())
                            {
                                Console.WriteLine("                        ReasonCode");
                                Console.WriteLine("                            {0}", authorizationStatus.ReasonCode);
                            }
                            if (authorizationStatus.IsSetReasonDescription())
                            {
                                Console.WriteLine("                        ReasonDescription");
                                Console.WriteLine("                            {0}", authorizationStatus.ReasonDescription);
                            }
                        }
                        if (authorizationDetails.IsSetAddressVerificationCode())
                        {
                            Console.WriteLine("                    AddressVerificationCode");
                            Console.WriteLine("                        {0}", authorizationDetails.AddressVerificationCode);
                        }
                    }
                }
            }

            catch (OffAmazonPaymentsServiceException ex)
            {
                PrintException(ex);
            }
            return response;
        }