使用Quickbook连接器和nodejs进行Quickbook(桌面)API集成

时间:2015-08-27 17:23:11

标签: node.js soap quickbooks

我是Quickbooks的新手,但我已经在Quickbook Premier Desktop Edition上安装并拥有了一个帐户以及Quickbook连接器。我正尝试通过可用的Quickbook连接器将我的自定义应用程序中的发票,估算和客户信息同步到Quickbooks中。问题是,我的应用程序返回的SOAP xml响应不被Quickbook连接器接受,因为它们的格式可能不同,所以我想使用nodejs为此创建一个服务网关,其中这个中间层可以处理和转换SOAP。到Quickbook连接器接受的格式。有一个限制,我无法直接更改我的应用程序生成SOAP响应的格式。所以任何人都可以建议从哪里开始,如果有的话,我正在思考正确的方向。提前致谢!

1 个答案:

答案 0 :(得分:2)

使用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