我正在寻找一种简单的方法(网络服务,API调用等)来简单地从Quickbooks Online Edition获取所有即将发票。有什么简单的方法来实现?我正在寻找一个相对高级别的抽象。
注意:我愿意禁用身份验证以避免必须处理证书等。只是寻找一个简单的解决方案。
答案 0 :(得分:4)
在此处使用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>
到同一个网址。
响应将是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/