QuickBooks有自己的SDK库,可以方便地在第三方之间进行通信。但是它们的库文件大小约为6MB,这对于一个简单的API集成来说是巨大的。
在使用Scribe搜索和找到解决方案这么多之后,我决定发布它,以便其他开发人员可以使用它。
intuit支持不会在这方面帮助您,也不会更正他们的文档。
,所以最基本的关注点是如何使用Scribe与Quickbook集成
发布于 2015-06-09 13:20:20
图书馆:文员-1.3.5.jar
public class QBOAuthDemo {
private static String CONSUMER_KEY = "<Consumer_Key>";
private static String CONSUMER_SECRET ="<Consumer_Secret>";
private static String TOKEN = "<Token>";
private static String TOKEN_SECRET = "<Token_Secret>";
private static String API_END_URL = "https://sandbox-quickbooks.api.intuit.com/v3";
public static void main(String[] args) throws IOException {
OAuthService qbService = new ServiceBuilder()
.provider(QuickBooksAPI.class)
.apiKey(CONSUMER_KEY)
.apiSecret(CONSUMER_SECRET)
.debug() //In order to Debug and view in Console
.callback("http://localhost:8080")
.build();
Token tokenAccess = new Token(TOKEN, TOKEN_SECRET);
System.out.println("Token Access = "+tokenAccess);
OAuthRequest request = new OAuthRequest(Verb.GET, API_END_URL+"/company/<YOUR-COMPANYID>/customer/<customerid>");
qbService.signRequest(tokenAccess, request);
request.addHeader("Content-Type","application/xml" );
Response response = request.send();
System.out.println(response.getBody());
}
}这将以XML (也支持)的形式连接和检索客户的信息。
你会得到什么样的回应
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IntuitResponse
xmlns="http://schema.intuit.com/finance/v3" time="2015-06-09T06:07:39.787-07:00">
<Customer domain="QBO" sparse="false">
<Id>64</Id>
<SyncToken>1</SyncToken>
<MetaData>
<CreateTime>2015-06-09T03:18:00-07:00</CreateTime>
<LastUpdatedTime>2015-06-09T03:18:15-07:00</LastUpdatedTime>
</MetaData>
<Title>Mr</Title>
<GivenName>DummyIND</GivenName>
<MiddleName>B</MiddleName>
<FamilyName>IND</FamilyName>
<FullyQualifiedName>IND King Crafts</FullyQualifiedName>
<CompanyName>IND King Crafts</CompanyName>
<DisplayName>IND King Crafts</DisplayName>
<PrintOnCheckName>IND King Crafts</PrintOnCheckName>
<Active>true</Active>
<PrimaryPhone>
<FreeFormNumber>(000) 555-5555</FreeFormNumber>
</PrimaryPhone>
<Mobile>
<FreeFormNumber>555-5555-6666</FreeFormNumber>
</Mobile>
<PrimaryEmailAddr>
<Address>jdrew@myemail.com</Address>
</PrimaryEmailAddr>
<DefaultTaxCodeRef>2</DefaultTaxCodeRef>
<Taxable>true</Taxable>
<BillAddr>
<Id>96</Id>
<Line1>123 Main Street</Line1>
<City>Mountain View</City>
<Country>USA</Country>
<CountrySubDivisionCode>CA</CountrySubDivisionCode>
<PostalCode>94042</PostalCode>
<Lat>37.37982969999999</Lat>
<Long>-122.114632</Long>
</BillAddr>
<ShipAddr>
<Id>97</Id>
<Line1>123 Main Street</Line1>
<City>Mountain View</City>
<Country>IND</Country>
<CountrySubDivisionCode>CA</CountrySubDivisionCode>
<PostalCode>94042</PostalCode>
<Lat>36.168973</Lat>
<Long>-96.173524</Long>
</ShipAddr>
<Notes>Here are other details.</Notes>
<Job>false</Job>
<BillWithParent>false</BillWithParent>
<Balance>0</Balance>
<BalanceWithJobs>0</BalanceWithJobs>
<CurrencyRef name="United States Dollar">USD</CurrencyRef>
<PreferredDeliveryMethod>Print</PreferredDeliveryMethod>
</Customer>
</IntuitResponse>QuickBooksAPI.JAVA的类文件
import org.scribe.builder.api.DefaultApi10a;
import org.scribe.model.Token;
public class QuickBooksAPI extends DefaultApi10a{
@Override
public String getAccessTokenEndpoint() {
return "https://oauth.intuit.com/oauth/v1/get_access_token";
}
@Override
public String getAuthorizationUrl(Token requestToken) {
String str = String.format("https://appcenter.intuit.com/connect/begin?oauth_token=%s",requestToken.getToken());
return str;
}
@Override
public String getRequestTokenEndpoint() {
return "https://oauth.intuit.com/oauth/v1/get_request_token";
}
}QuickBooks支持HMAC-SHA1签名,它由Scribe自动处理。为了执行批处理操作,您可以参考网址:QUICKBOOKS BATCHOPERATION
https://stackoverflow.com/questions/30733229
复制相似问题