intuit api v3创建客户失败

时间:2014-05-14 21:43:07

标签: quickbooks quickbooks-online intuit

我',使用IPP java QBO ApiV3。我能够通过API Explorer,IPP Playground和我的Java应用程序阅读和查询客户。

我无法通过IPP Playground和我的Java App创建客户(或更新现有客户)。但是,我可以通过API Explorer创建和更新。我很困惑,我在IPP Playground中遇到了不同的错误(500 - 内部服务器错误。)和Java app(消息=异常验证OAuth; errorCode = 003200)。

认证部分与读取Customer的方法相同。此外,我只将请求主体(与API Explorer中相同)附加到请求中。

Java代码:

OAuthConsumer consumer = new DefaultOAuthConsumer(consumerKey, consumerSecret);
consumer.setTokenWithSecret(accessToken, accessTokenSecret);

String signedUrl = consumer.sign(custUrl);
URL url = new URL(signedUrl);

String requestBody = " <Customer xmlns=\"http://schema.intuit.com/finance/v3\" domain=\"QBO\" sparse=\"false\">"+
                     "    <FamilyName>Customer Two</FamilyName>"+
                     "    <DisplayName>Second Customer</DisplayName>"
                     " </Customer>";

HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
// add Request Header
urlConn.setRequestMethod("POST");
urlConn.setRequestProperty("Content-type", "application/xml");
urlConn.setRequestProperty("Content-Length", Integer.toString(requestBody.getBytes().length));
urlConn.setRequestProperty("Host", "qb.sbfinance.intuit.com");
urlConn.setRequestProperty("Accept-Encoding", "gzip,deflat");
urlConn.setRequestProperty("charset", "utf-8");

OutputStreamWriter wr = new OutputStreamWriter(urlConn.getOutputStream());
wr.write(requestBody);
wr.flush();
wr.close();

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

所有这些问题都已由JAVA devkit处理。

https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits

https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0201_ipp_java_devkit_3.0/0001_synchronous_calls/0001_data_service_apis

重新 - 你的代码 接受应该是'application / xml'

但devkit始终是推荐的方法。

由于