asp.net - 使用我的应用程序快速书籍向 Web Connector 发送请求

标签 asp.net web-services desktop quickbooks

我想通过向 Web Connector 发送请求来添加客户。我已经用SDK提供的示例代码完成了。我想了解使用Web Connector获取和发送数据的过程。

我如何调用 Quick Book Web Service 并发送请求和检索数据。

最佳答案

How can i call Quick Book Web Service

你不能。

这不是 QuickBooks Web 连接器的工作方式。

您的起点应该是阅读有关 QuickBooks SDK 中包含的 QuickBooks Web Connector 的 98 页 PDF。这是一个链接:

作为概述,Web 连接器是一个位于 QuickBooks 旁边的简单 SOAP 客户端,它调用您的 Web 服务,而不是相反。它会轮询您设置的 Web 服务 (SOAP),并本质上询问“嘿,我应该做什么?”一遍又一遍地。然后,您向它提供 XML (qbXML) 命令,告诉它要做什么(例如 <CustomerAdd>...</CustomerAdd> 等)

作为概述,您可以使用以下方法实现 SOAP Web 服务:

array authenticate(string strUserName, string strPassword)

您应该将用户名和密码存储在您的网络应用程序中。

如果用户名和密码有效,您将生成一个 session ID(“票证”)并将该票证存储在您的数据库中。随后对您的每次调用都将包含此票证字符串,您将进行检查以确保该票证在每次后续调用中均有效。

然后您应该检查是否有什么可做的。您应该在 SOAP 服务器中维护一个要做的事情的队列。根据规范返回适当的响应。

string sendRequestXML(string ticket, string strHCPResponse, string strCompanyFileName, string qbXMLCountry, int qbXMLMajorVers, int qbXMLMinorVer)

Web 连接器将调用此方法来询问您“嘿,我应该做什么?”。

您应该检查内部待办事项队列,并将下一项从队列中拉出。您应该以字符串形式返回该队列项的有效 qbXML XML 请求。

因此,如果您想将客户添加到 QuickBooks,您将返回类似 <CustomerAdd><Name>...</Name></CustomerAdd> 的内容。

如果您想从 QuickBooks 获取客户列表,您可以执行类似 <CustomerQuery>...</CustomerQuery> 的操作

integer receiveResponseXML(string ticket, string response, string hresult, string message)

这就是 Web 连接器将数据发送回给您的方式。例如,如果您告诉 Web Connector 添加客户,它会将客户添加到 QuickBooks,然后向您发送 XML 响应,告诉您是否成功。

这就是全部内容。

您需要使用 3 个非常简单的方法和一个充满 XML 命令的队列来实现 SOAP 服务。

这里有更详细的解释,包括 SOAP 和 qbXML 示例:

如果您在 .NET 中进行开发,那么您应该安装 QuickBooks SDK:

因为它为您提供了 .NET 中的示例代码,向您展示如何实现所有这些内容。当您安装 SDK 时,它会被放置在您的计算机上:

  • C:\Program Files (x86)\Intuit\IDN\QBSDK13.0\samples\qbdt\c-sharp\qbXML\WCWebService\

关于asp.net - 使用我的应用程序快速书籍向 Web Connector 发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36937442/

相关文章:

c# - ASP.Net 网页中的强类型全局数据

c# - 如何使用DotNetOpenAuthentication获取facebook、gmail、twitter的头像?(说明内页)

web-services - 在 golang 中访问 GET 参数 net/http 的问题

.net - 如何控制 ASP.Net Web 服务中的输出格式

python - 如何使用 python 更改我的桌面背景?

javascript - 对 require.js 感到困惑

javascript - 如何使用 javascript 或 css 更改 select 标签中的选项宽度?

java - 避免 RPC (SOAP) API 之间的中间数据转换?

libgdx - 如何使 libGDX 滚动 Pane 滚动而不先单击它

c++ - Qt 4.x : how to implement drag-and-drop onto the desktop or into a folder?