Exemplo n.º 1
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)
        {
            if (string.IsNullOrWhiteSpace(checkoutRequest.Key) ||
                string.IsNullOrWhiteSpace(checkoutRequest.Secret))
            {
                //this.ValidatorFactory.GetValidator<DwollaServerCheckoutApi>()
                //    .ValidateAndThrow( this );

                if (string.IsNullOrWhiteSpace(checkoutRequest.Key))
                {
                }
            }
            checkoutRequest.Key = this.AppKey;
            if (string.IsNullOrWhiteSpace(checkoutRequest.Secret))
            {
                checkoutRequest.Secret = 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(RequestUrl);
            
            var req = new RestRequest("payment/request", Method.POST) {
                RequestFormat = DataFormat.Json
            }
                .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)
        {
            if (string.IsNullOrWhiteSpace(checkoutRequest.Key) ||
                string.IsNullOrWhiteSpace(checkoutRequest.Secret))
                //this.ValidatorFactory.GetValidator<DwollaServerCheckoutApi>()
                //    .ValidateAndThrow( this );

                if (string.IsNullOrWhiteSpace(checkoutRequest.Key)) { }
            checkoutRequest.Key = this.AppKey;
            if (string.IsNullOrWhiteSpace(checkoutRequest.Secret))
                checkoutRequest.Secret = this.AppSecret;

            checkoutRequest.Test = this.TestMode;

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

            return ExecuteRestRequest(checkoutRequest);
        }
Exemplo n.º 4
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 = new RestClient();

            var req = new RestRequest(RequestUrl, Method.POST)
            {
                RequestFormat = DataFormat.Json
            }
            .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);
        }