Example #1
0
        /// <summary>Executes the Dwolla Checkout REST Request. This method can be overridden if you wish to use a different REST library to execute the actual request. </summary>
        protected virtual DwollaCheckoutResponse ExecuteRestRequest(DwollaCheckoutRequest checkoutRequest)
        {
            var client = this.GetRestClient();
            var req    = this.GetRestRequest(RequestUrl);

            req.Method = Method.POST;
            req.AddBody(checkoutRequest);

            var res = client.Execute <DwollaCheckoutResponse>(req);

            if (res.ResponseStatus != ResponseStatus.Completed || res.StatusCode != HttpStatusCode.OK)
            {
                return new DwollaCheckoutResponse {
                           Success = false, Message = "Non HTTP status code received."
                }
            }
            ;

            return(res.Data);
        }
Example #2
0
        /// <summary>Executes a POST request to the Off-Site Gateway API. </summary>
        /// <param name="checkoutRequest">A valid Dwolla checkout request.</param>
        /// <returns>Response by Dwolla. It is the callers responsibility to ensure the return object's Result property is 'Success'</returns>
        public virtual DwollaCheckoutResponse SendCheckoutRequest(DwollaCheckoutRequest checkoutRequest)
        {
            this.ValidatorFactory.GetValidator <DwollaServerCheckoutApi>()
            .ValidateAndThrow(this);

            if (string.IsNullOrWhiteSpace(checkoutRequest.ClientId))
            {
            }
            checkoutRequest.ClientId = this.AppKey;
            if (string.IsNullOrWhiteSpace(checkoutRequest.ClientSecret))
            {
                checkoutRequest.ClientSecret = this.AppSecret;
            }

            checkoutRequest.Test = this.TestMode;

            this.ValidatorFactory.GetValidator <DwollaCheckoutRequest>()
            .ValidateAndThrow(checkoutRequest);

            return(ExecuteRestRequest(checkoutRequest));
        }
        /// <summary>Executes the Dwolla Checkout REST Request. This method can be overridden if you wish to use a different REST library to execute the actual request. </summary>
        protected virtual DwollaCheckoutResponse ExecuteRestRequest( DwollaCheckoutRequest checkoutRequest)
        {
            var client = new RestClient();

            var req = new RestRequest( RequestUrl, Method.POST )
                {
                    RequestFormat = DataFormat.Json
                }
                .WithNewtonsoft()
                .AddBody( checkoutRequest );

            var res = client.Execute<DwollaCheckoutResponse>( req );

            if( res.ResponseStatus != ResponseStatus.Completed || res.StatusCode != HttpStatusCode.OK )
                return new DwollaCheckoutResponse {Result = DwollaCheckoutResponseResult.Failure, Message = "Non HTTP status code received."};

            return res.Data;
        }
        /// <summary>Executes a POST request to the Off-Site Gateway API. </summary>
        /// <param name="checkoutRequest">A valid Dwolla checkout request.</param>
        /// <returns>Response by Dwolla. It is the callers responsibility to ensure the return object's Result property is 'Success'</returns>
        public virtual DwollaCheckoutResponse SendCheckoutRequest( DwollaCheckoutRequest checkoutRequest )
        {
            this.ValidatorFactory.GetValidator<DwollaServerCheckoutApi>()
                .ValidateAndThrow( this );

            if( string.IsNullOrWhiteSpace(checkoutRequest.ClientId) ){}
                checkoutRequest.ClientId = this.AppKey;
            if( string.IsNullOrWhiteSpace(checkoutRequest.ClientSecret))
                checkoutRequest.ClientSecret = this.AppSecret;

            checkoutRequest.Test = this.TestMode;

            this.ValidatorFactory.GetValidator<DwollaCheckoutRequest>()
                .ValidateAndThrow( checkoutRequest );

            return ExecuteRestRequest( checkoutRequest );
        }