繁体   English   中英

如何在nodejs中向XML-WSDL中的服务发送请求

[英]How send a request to a service in XML-WSDL in nodejs

我在 Web 服务(WSDL)中有一个 XML。 该文件包含许多服务,我想向 Nodejs 中的该服务之一发送请求。 但我对 XML 和 WSDL 一无所知。 我只想请求服务并向其发送一些参数并获得响应。

这个 xml 服务包含一些这样的服务:

<wsdl:operation name="bpPaymentRequest">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="bpPayRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="bpPayRequestResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>

我想向这项服务请求这样的事情:

const response = await axios.post( "https://example.com/services/pgw?bpPaymentRequest" , payReqParams)

但是如果我测试一下,我知道这是错的吗? 我应该如何向该服务发送请求?

看来您愿意从axios调用SOAP web 服务。

SOAP web 服务讨论XML 这意味着他们接受 XML 作为输入并返回另一个 XML 作为响应。 Json APIs相比,它们不接受 JSON 数据输入。

所以,

  1. 您需要准备一个 XML 用于输入
  2. 通过axios发送
  3. 假设这是一个有效的 XML 解析结果

示例代码如下所示:

var xml ='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"\
                            xmlns:web="http://shaparak/">\
            <soapenv:Header/>\
            <soapenv:Body>\
              <web:param>\
                <web:amount>123</web:amount>\
              </web:param>\
            </soapenv:Body>\
          </soapenv:Envelope>';

axios.post('https://example.com/services/pgw?bpPaymentRequest',
           xml,
           {headers:
             {'Content-Type': 'text/xml'}
           }).then(res=>{
             console.log(res);
           }).catch(err=>{console.log(err)});

注意力

您是否正在使用 Mellat 或 Shaparak 实施银行网关进行支付? 他们对 Node.js 有一些实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM