Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>This is a bug in the DevKit. The OpenBalance filter defaults to :EQUALS: and does not support :GreaterThan:.</p> <p><a href="https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0400_QuickBooks_Online/Invoice#Attributes_Supporting_Filtering_and_Sorting" rel="nofollow">https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0400_QuickBooks_Online/Invoice#Attributes_Supporting_Filtering_and_Sorting</a></p> <p>Here is a workaround using DevDefined to construct the OAuth header:</p> <pre><code>public List&lt;Intuit.Ipp.Data.Qbo.Invoice&gt; GetQboUnpaidInvoices(DataServices dataServices, int startPage, int resultsPerPage, IdType CustomerId) { StringBuilder requestXML = new StringBuilder(); StringBuilder responseXML = new StringBuilder(); var requestBody = String.Format("PageNum={0}&amp;ResultsPerPage={1}&amp;Filter=OpenBalance :GreaterThan: 0.00 :AND: CustomerId :EQUALS: {2}", startPage, resultsPerPage, CustomerId.Value); HttpWebRequest httpWebRequest = WebRequest.Create(dataServices.ServiceContext.BaseUrl + "invoices/v2/" + dataServices.ServiceContext.RealmId) as HttpWebRequest; httpWebRequest.Method = "POST"; httpWebRequest.ContentType = "application/x-www-form-urlencoded"; httpWebRequest.Headers.Add("Authorization", GetDevDefinedOAuthHeader(httpWebRequest, requestBody)); requestXML.Append(requestBody); UTF8Encoding encoding = new UTF8Encoding(); byte[] content = encoding.GetBytes(requestXML.ToString()); using (var stream = httpWebRequest.GetRequestStream()) { stream.Write(content, 0, content.Length); } HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse; using (Stream data = httpWebResponse.GetResponseStream()) { Intuit.Ipp.Data.Qbo.SearchResults searchResults = (Intuit.Ipp.Data.Qbo.SearchResults)dataServices.ServiceContext.Serializer.Deserialize&lt;Intuit.Ipp.Data.Qbo.SearchResults&gt;(new StreamReader(data).ReadToEnd()); return ((Intuit.Ipp.Data.Qbo.Invoices)searchResults.CdmCollections).Invoice.ToList(); } } protected string GetDevDefinedOAuthHeader(HttpWebRequest webRequest, string requestBody) { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, SignatureMethod = SignatureMethod.HmacSha1, UseHeaderForOAuthParameters = true }; consumerContext.UseHeaderForOAuthParameters = true; //URIs not used - we already have Oauth tokens OAuthSession oSession = new OAuthSession(consumerContext, "https://www.example.com", "https://www.example.com", "https://www.example.com"); oSession.AccessToken = new TokenBase { Token = accessToken, ConsumerKey = consumerKey, TokenSecret = accessTokenSecret }; IConsumerRequest consumerRequest = oSession.Request(); consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method); consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri); if (webRequest.Headers.Count &gt; 0) { ConsumerRequestExtensions.AlterContext(consumerRequest, context =&gt; context.Headers = webRequest.Headers); if (webRequest.Headers[HttpRequestHeader.ContentType] == "application/x-www-form-urlencoded") { Dictionary&lt;string, string&gt; formParameters = new Dictionary&lt;string, string&gt;(); foreach (string formParameter in requestBody.Split('&amp;')) { formParameters.Add(formParameter.Split('=')[0], formParameter.Split('=')[1]); } consumerRequest = consumerRequest.WithFormParameters(formParameters); } } consumerRequest = consumerRequest.SignWithToken(); return consumerRequest.Context.GenerateOAuthParametersForHeader(); } </code></pre> <p><a href="http://nuget.org/packages/DevDefined.OAuth" rel="nofollow">http://nuget.org/packages/DevDefined.OAuth</a></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload