我正在尝试使用本机 php 肥皂服务器在 php 中创建一个肥皂服务。我已经准备好了 wsdl 文件。基本上有四种方法可以使用soap 服务调用。ShowRemittanceDetail 请求之一的输入soap 请求如下所示。
<soap-env:body>
<ns1:showremittancedetailrequest>
<username>admin</username>
<password>pass</password>
<refno>USA1956127848</refno>
</ns1:showremittancedetailrequest>
</soap-env:body>
无论如何,soap 请求没有标题,我刚刚在这里展示了正文。我解析肥皂请求没有问题。响应应该是这样的
<?xml version="1.0" encoding="ISO-8859-1"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns2:responseType xmlns:ns2="http://tempuri.org/response">
<code>00</code>
<message>Transaction does not exist or is not available</message>
<responseBody>
<responseStr>4</responseStr>
</responseBody>
</ns2:responseType>
</soapenv:Body>
</soapenv:Envelope>
这是一个特定的响应,当具有参考号的交易在服务器中不可用时生成。我已收到肥皂请求并对其进行了评估。但是我对肥皂响应的返回类型有疑问。我无法生成有效响应。肥皂服务器应该返回什么类型的响应?
我尝试过的事情:
- 我试过返回一个 xml 字符串。但是,soap 客户端请求会引发异常,并显示以下消息。
looks like we got no xml document
. 我也尝试过
SoapVar()
以相同的结果返回本机 php。我尝试返回一个在肥皂服务器的类映射中指定的对象响应。例如,对于上面的示例,我尝试返回
ShowRemittanceDetailResponse
具有相同结果的对象。(looks like we got no xml document
)。我试过返回一个 DomDocument Object 。在这种情况下抛出的异常是
the encoded object does not have a responseStr property
.
- 我尝试返回一个 stdClass 对象,该对象具有与响应期望的相同字段并具有相似的结果。
请帮我。提前致谢。