/// <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); }
/// <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 ); }