如何解决如何在 nodejs 中向 XML-WSDL 中的服务发送请求
我在 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)
但是如果我测试这个,我知道这是错误的!我应该如何向此服务发送请求?
解决方法
您似乎愿意从 SOAP
调用 axios
网络服务。
SOAP 网络服务对话 XML
。这意味着它们接受 XML 作为输入并返回另一个 XML 作为响应。与 Json APIs
相比,它们不接受 JSON 数据输入。
所以,
- 您需要准备一个 XML 以供输入
- 通过
axios
发送 - 假设这是一个有效的 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 的实现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。