我是Quickbooks的新手,但我已经在Quickbook Premier Desktop Edition上安装并拥有一个帐户以及Quickbook连接器.我正尝试通过可用的Quickbook连接器将我的自定义应用程序中的发票,估算和客户信息同步到Quickbooks中.问题是,我的应用程序返回的SOAP xml响应不被Quickbook连接器接受,因为它们的格式可能不同.所以我想使用nodejs为此创建一个服务网关,其中这个中间层可以处理和转换SOAP.到Quickbook连接器接受的格式.有一个限制,我无法直接更改我的应用程序生成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.