我的一位客户最近要求我将其Web服务与某些外部公司API集成。我必须在PHP中添加集成控制器,因为这就是他的形式的处理方式。
公司为我提供了:
1(WSDL Web服务的定义,
2(一个名为Contract.xml的示例,
3(两个用于数据验证的.xsd文件,
4(三个.xml示例(SOAP请求,响应真实和响应 - false(
我从未做过这样的事情,我想知道是否有任何意义,如果有人能为我提供一些知识,可以让我开始以自己的方式思考这个问题。
架构是什么样的:将"空白"请求设置为php var
,并用表单输入对其进行更新是一个好的解决方案?还是我应该尝试在XML解析上了解更多信息并以这种方式进行?
如果您有WSDL(Web Service Documentation语言(XML文件,则不需要解析任何XML,或者您可以在线访问您要与之交流的服务的WSDL,您应该做的所有定义对象
$ mySoapClient = new SoapClient("路径/to/to/your/your/wsdl.xml",array("在这里您应该编写需要肥皂服务的参数"((;
也可能会有用户凭据,您可以使用
设置这些凭据$soapClient = new SoapClient("https://soapserver.example.com/blahblah.asmx?wsdl");
// Prepare SoapHeader parameters
$sh_param = array(
'Username' => 'username',
'Password' => 'password');
$headers = new SoapHeader('http://soapserver.example.com/webservices', 'UserCredentials', $sh_param);
// Prepare Soap Client
$soapClient->__setSoapHeaders(array($headers));
连接后,您将使用$ soapclient对象获取所有提供肥皂服务器的方法 像这样
$ soapclient-> somemethodthatprovidemysoapserver($ someparams(;
此方法SomeMethodthatprovidemysoapserver您在服务器中没有来自SOAP服务器的服务器,您可以使用它有关更多细节,您可以从这里学习http://php.net/manual/en/book.soap.phphttp://php.net/manual/en/class.soapclient.php使用XML主体