我正在寻找一种简单的方法(网络服务、API 调用等)来简单地从 Quickbooks 在线版获取所有即将到来的发票。有什么简单的方法可以实现吗?我正在寻找一个相对高级的抽象。
注意:我愿意禁用身份验证以避免必须处理证书等。只是寻找一个简单的解决方案。
我正在寻找一种简单的方法(网络服务、API 调用等)来简单地从 Quickbooks 在线版获取所有即将到来的发票。有什么简单的方法可以实现吗?我正在寻找一个相对高级的抽象。
注意:我愿意禁用身份验证以避免必须处理证书等。只是寻找一个简单的解决方案。
在此处向 Intuit 注册您的应用程序:https ://appreg.intuit.com/
注册:
在浏览器中转到此 URL(将您自己的应用程序 ID 替换为 URL): https ://login.quickbooks.com/j/qbn/sdkapp/confirm?appid=YOUR-APPLICATION-ID-HERE&serviceid=2004&appdata=1
出现提示时,请确保通过选择“否。任何可以登录 [应用程序名称] 的人都可以使用连接”来关闭登录安全。选项。
在流程结束时,您将获得一张连接票。将其保存在安全的地方。
编写一个程序来发送这个 HTTP 正文:
<?xml version="1.0" ?>
<?qbxml version="6.0"?>
<QBXML>
<SignonMsgsRq>
<SignonDesktopRq>
<ClientDateTime>2009-10-09T07:10:10</ClientDateTime>
<ApplicationLogin>application login goes here</ApplicationLogin>
<ConnectionTicket>connection ticket goes here</ConnectionTicket>
<Language>English</Language>
<AppID>application id goes here</AppID>
<AppVer>1</AppVer>
</SignonDesktopRq>
</SignonMsgsRq>
</QBXML>
到 Intuit 的服务器: https ://webapps.quickbooks.com/j/AppGateway
您将取回一张会话票。
编写一个程序来发送这个 HTTP 请求:
<?xml version="1.0" ?>
<?qbxml version="6.0"?>
<QBXML>
<SignonMsgsRq>
<SignonTicketRq>
<ClientDateTime>2006-09-20T15:49:26</ClientDateTime>
<SessionTicket>session ticket goes here</SessionTicket>
<Language>English</Language>
<AppID>application id goes here</AppID>
<AppVer>1</AppVer>
</SignonTicketRq>
</SignonMsgsRq>
<QBXMLMsgsRq onError="continueOnError">
<InvoiceQueryRq requestID="2">
<MaxReturned>10</MaxReturned>
</InvoiceQueryRq>
</QBXMLMsgsRq>
</QBXML>
到同一个 URL。
响应将是一组 XML 格式的发票数据。
当您需要有关 qbXML 请求语法的更多详细信息时,请参阅 OSR:http: //developer.intuit.com/qbsdk-current/common/newosr/index.html
您可以在此处找到一些 C# 示例代码: http ://wiki.consolibyte.com/wiki/doku.php/quickbooks_integration_csharp#c_net_sample_code_for_quickbooks_online_edition
其他阅读这篇文章的人的重要提示:这应该只用于一次性/自定义类型的应用程序。如果您正在构建一个软件即服务应用程序并试图让您的最终用户将他们自己的 QuickBooks 数据与您的应用程序同步,那么您应该查看 IPP/IDS 而不是上面的 qbXML 示例。http://developer.intuit.com/