我一直在研究一个项目(我将保留具体的详细信息,包括随机数据),这涉及到我们的系统(PHP 5.3.x +)与API的集成(他们提供了一个SDK)的一家大公司。他们提供了一个WSDL并声称我们需要匹配他们的方法,他们提供了输出(Soap服务器生成的XML)外观的示例。Zend Soap服务器/ WSDL
现在,一切都按预期工作。当我从SoapUI(我用来测试的应用程序)发送一个XML请求时,它的所有处理过程都是正确的,但是XML输出与他们的示例并不紧密匹配,我们相信他们说我们必须接近他们的示例。
基本上,我们创建了我们用一个服务名初始化一个不可知类,并将其初始化成其经由以下使用非类不可知:
/**
* The following is used to process Soap Server based on config and any optional settings.
*
* @param string $className
* @param array $options
* @param object $config
* @return Zend_Soap_Server
*/
public static function init($className, Array $options = null, $config = null)
{
// Used to define the class and return object.
$soap_server = new Zend_Soap_Server(null, $options);
$soap_server->setClass($className, null, (isset($config) ? $config : null));
$soap_server->handle();
exit;
}
本身位于输出响应中的问题。你们如何建议我们构建XML输出,如果他们对每件事都非常具体?
1.)我们的方法之一是moneyTransferRequest。当我为此发送XML时,它确实找到了方法并对其进行处理。但是,他们希望它在响应中显示方法名称为moneyTransferResponse,但它会输出moneyTransferRequestResponse。
2.)我们的输出(对于作为对象发回的变量等)有多个变量,例如我们会说$ money。此字段将返回为:
<money xsi:type="xsd:string">10.0</money>
他们希望它是:
<ns1:money xsi:type="xsd:string">10.0</money>
在返回
。
我感谢任何帮助和输入的主题。
您好,非常感谢您的回复。我终于看完了。我们认为,除了制定与非标准指导方针相匹配的回应外,我们还可以做的不多。无论如何,这是非常有用的,并为我澄清了一些事情。 – Robbie