【问题标题】:PHP - Connecting with webservice API using SOAP WSDLPHP - 使用 SOAP WSDL 与 Web 服务 API 连接
【发布时间】:2018-02-19 01:42:32
【问题描述】:

我的一位客户最近要求我将他的网络服务与一些外部公司的 API 集成。我必须在 PHP 中添加集成控制器,因为这是处理他的表单的方式。

公司为我提供了:

1) Web 服务的 WSDL 定义,

2) 一个名为contract.xml的例子,

3) 用于数据验证的两个 .xsd 文件,

4) 三个 .xml 示例(soap 请求、response-true 和 response-false)

我从来没有做过这样的事情,我想知道是否有任何尝试的意义,如果有人能给我一些知识,让我开始在这个问题上思考自己的方式,我将不胜感激。

架构是什么样的:将“空白”请求设置为 PHP var 并使用表单输入更新它是一个很好的解决方案?还是我应该尝试学习更多关于 XML 解析的知识并走这条路?

【问题讨论】:

    标签: php web-services soap wsdl


    【解决方案1】:

    您不需要解析任何 xml,如果您有 WSDL(Web 服务文档语言)xml 文件,或者您可以在线访问要与之通信的服务的 wsdl,那么您应该定义对象

    $mySoapClient = new SoapClient("path/to/your/wsdl.xml", array("这里你应该写下需要你的soap服务的参数"));

    也可能有您可以设置的用户凭据

    $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.php http://php.net/manual/en/class.soapclient.php Creating a SOAP call using PHP with an XML body

    【讨论】:

    • 感谢 Armen 的贡献,我会在几个小时内查看它,但这似乎正是我想要的,一旦我确定它工作正常,我会接受答案!跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2020-08-09
    • 2012-09-11
    相关资源
    最近更新 更多