Node.js 使用节点soap使用WSDL时出现问题

Node.js 使用节点soap使用WSDL时出现问题,node.js,soap,wsdl,node-soap,Node.js,Soap,Wsdl,Node Soap,TL见下文;博士 无法使用节点soap使用WSDL。我尝试过其他WSDL(在线找到的示例),它们工作得很好——但是,对于这个特定的WSDL,我遇到了无数的问题。我按照承诺使用soap,它使用节点soap模块。这应该是无关紧要的 var soap = require('soap-as-promised'); var url = 'https://test.ipg-online.com/ipgapi/services/order.wsdl'; var apiCall = exports.apiCa

TL见下文;博士

无法使用节点soap使用WSDL。我尝试过其他WSDL(在线找到的示例),它们工作得很好——但是,对于这个特定的WSDL,我遇到了无数的问题。我按照承诺使用soap,它使用节点soap模块。这应该是无关紧要的

var soap = require('soap-as-promised');
var url = 'https://test.ipg-online.com/ipgapi/services/order.wsdl';

var apiCall = exports.apiCall = function () {
        console.error("test");
        soap.createClient(url, { wsdl_options: { cert: '/path/to/cert.pem', key:'/path/to/key.key' } } )
        .then(function(client) {
            console.error(client);
            client.describe();
        })
        .catch(function(error) {
            console.error(error);
        });

    }
这是我现在使用的代码,但这肯定是不对的。它返回以下错误(指向我的证书和私钥的路径正确):

[错误:错误:0906D06C:PEM例程:PEM_read_bio:无起始行]

根据文档,我似乎应该使用client.setSecurity进行SSL通信:

    client.setSecurity(new soap.ClientSSLSecurity(
    '/path/to/key'
    , '/path/to/cert'
    , {/*default request options*/}
  ));
但是,如果我只是这样做,并且忽略wsdl_选项,那么客户机在回调中返回为未定义,不允许我运行任何函数,包括setSecurity函数。我想这一定是两者的结合,但我不知道是什么结合

TL;DR尝试使用节点soap使用WSDL;此WSDL需要证书和私钥,以及使用用户名/pw进行身份验证。使用节点soap执行此操作的过程是什么?我是否必须安装证书(我在CentOS上),然后以某种方式引用它们

任何帮助都将不胜感激-如果您熟悉此过程,即使是其他库,也请参与!谢谢:)

编辑:修正!对于其他有类似问题的人,代码如下:

soap.createClient(url, { wsdl_options: { cert: fs.readFileSync('/path/to/cert.pem'), key: fs.readFileSync('/path/to/key.key'), passphrase: 'password' } } )

您可以发布自己的解决方案并将其标记为已接受,这样您的问题就不会无人回答。您可以发布自己的解决方案并将其标记为已接受,这样您的问题就不会无人回答。