【问题标题】:Quickbook(desktop) API integration using Quickbook connector and nodejs使用 Quickbook 连接器和 nodejs 的 Quickbook(桌面)API 集成
【发布时间】:2015-08-27 17:23:11
【问题描述】:

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

【问题讨论】:

    标签: node.js soap quickbooks


    【解决方案1】:

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

    【讨论】:

    • 这可以处理多个传入请求吗?我正在尝试在同一时间同步两个不同的 QB 用户,但一次只能处理一个请求。我是否需要使用其他一些框架(例如 ExpressJs)来实现我正在寻找的内容?
    • 我对这一切真的很陌生,你能指出我正确的方向吗?
    • @newbie 如其所写:可能不是。 IO 阻塞(不是很像节点!)。它可以?我想是的......如果它被编写为完全支持异步回调。我知道应该如何做,但我从未测试过。我会回复你的。
    • 这正是我需要的,让它支持异步回调。一旦我返回“NoOp”让它等待并且有两个或更多并发请求,它就会变得一团糟。谢谢!
    • @newbie 你能发布一个新问题,这样我们就不会在 cmets 中太过分了吗?这将使其他人更容易搜索相同的解决方案。我建议标题为“如何使用 Node.JS 异步服务多个 QBWC 客户端?”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多