Quickbook(桌面)API 使用 Quickbook 连接器和 nodejs 的集成
Quickbook(desktop) API integration using Quickbook connector and nodejs
我是 Quickbooks 的新手,但我已经安装了 Quickbook Premier Desktop Edition 并拥有一个帐户以及适当的 Quickbook 连接器。我正在尝试通过可用的 Quickbook 连接器将我的自定义应用程序中的发票、估算和客户信息同步到 Quickbooks 中。问题是,我的应用程序返回的 SOAP xml 响应不被 Quickbook 连接器接受,因为它们的格式可能不同,所以我想为此使用 nodejs 创建一个服务网关,最好是这个中间层可以处理和根据 Quickbook 连接器接受的格式转换 SOAP。有一个限制,我不能直接更改我的应用程序生成 SOAP 响应的格式。那么任何人都可以建议从哪里开始,如果我在思考正确的方向。提前致谢!
使用 soap package,像这样构建您的服务:
var soap = require('soap');
var yourService = {
QBWebConnectorSvc: {
QBWebConnectorSvcSoap: {
serverVersion: function (args) {
// serverVersion code here
return {
serverVersionResult: { string: retVal }
};
},
clientVersion: function (args) {
//clientVersion code here
return {
clientVersionResult: { string: retVal }
};
},
// and all other service functions required by QBWC
}
}
};
var soapServer = soap.listen(server, '/path-to-your-wsdl', yourService, xml);
下面是 clientVersion()
的示例响应应该看起来像使用该结构:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://developer.intuit.com/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/">
<soap:Body>
<tns:clientVersionResponse xmlns:tns="http://developer.intuit.com/" xmlns="http://developer.intuit.com/">
<tns:clientVersionResult>
<tns:string></tns:string>
</tns:clientVersionResult>
</tns:clientVersionResponse>
</soap:Body>
</soap:Envelope>
我写了一个功能实现,可以使用了here。
我是 Quickbooks 的新手,但我已经安装了 Quickbook Premier Desktop Edition 并拥有一个帐户以及适当的 Quickbook 连接器。我正在尝试通过可用的 Quickbook 连接器将我的自定义应用程序中的发票、估算和客户信息同步到 Quickbooks 中。问题是,我的应用程序返回的 SOAP xml 响应不被 Quickbook 连接器接受,因为它们的格式可能不同,所以我想为此使用 nodejs 创建一个服务网关,最好是这个中间层可以处理和根据 Quickbook 连接器接受的格式转换 SOAP。有一个限制,我不能直接更改我的应用程序生成 SOAP 响应的格式。那么任何人都可以建议从哪里开始,如果我在思考正确的方向。提前致谢!
使用 soap package,像这样构建您的服务:
var soap = require('soap');
var yourService = {
QBWebConnectorSvc: {
QBWebConnectorSvcSoap: {
serverVersion: function (args) {
// serverVersion code here
return {
serverVersionResult: { string: retVal }
};
},
clientVersion: function (args) {
//clientVersion code here
return {
clientVersionResult: { string: retVal }
};
},
// and all other service functions required by QBWC
}
}
};
var soapServer = soap.listen(server, '/path-to-your-wsdl', yourService, xml);
下面是 clientVersion()
的示例响应应该看起来像使用该结构:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://developer.intuit.com/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/">
<soap:Body>
<tns:clientVersionResponse xmlns:tns="http://developer.intuit.com/" xmlns="http://developer.intuit.com/">
<tns:clientVersionResult>
<tns:string></tns:string>
</tns:clientVersionResult>
</tns:clientVersionResponse>
</soap:Body>
</soap:Envelope>
我写了一个功能实现,可以使用了here。