Home  >  Article  >  Backend Development  >  WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial

WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:04:28824browse

The implementation process of WSDL and SOAP calls under PHP5, php5wsdl

1. Basic concepts

SOAP (Simple Object Access Protocol) Simple Object Access Protocol is a simple protocol for exchanging information in a decentralized or distributed environment. It is an XML-based protocol. It includes four parts: SOAP envelop (envelop), encapsulation Defines a framework that describes what is in the message, who sent it, who should accept and process it and how to process them; SOAP encoding rules (encoding rules), which are used to represent instances of the data types that the application needs to use; SOAP RPC representation represents the protocol for remote procedure calls and responses; SOAP binding uses the underlying protocol to exchange information.

WSDL (Web Service Description Language) is the standard XML format for describing XML Web services. WSDL was proposed by developers such as Ariba, Intel, IBM and Microsoft. It defines the relevant operations and messages sent and received by a given Web service in an abstract way that is independent of the specific language. By its definition, you cannot yet think of WSDL as an object interface definition language. For example, application architectures such as CORBA or COM will use object interface definition languages. WSDL remains protocol neutral, but it does have built-in support for binding to SOAP, thus establishing an inseparable link with SOAP. So, when I discuss WSDL in this article, I will assume that you use SOAP as your communication protocol.

Although SOAP and WSDL are two major standards for web services, they are not necessarily connected and can be used independently. The relationship between them is similar to the relationship between HTTP and Html. The former is a protocol, and the latter is a description of a Web Server.


2. Configuration under PHP5

In the php configuration file php.ini, find

extension=php_soap.dll

Then remove the “;” sign in front, and then restart the web service

3. Query web service methods, parameters, and data types

The order entry interface of a provincial telecommunications company is http://***.******.com/services/AcceptedBusiness?wsdl
We use SoapClient’s __geunctions() and __getTypes() Method View the methods, parameters and data types of the interface
Only the interfaces listed in __getFunctions can be called by soap.
Create the code soap.php in the root directory

WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial
<?php
header("content-type:text/html;charset=utf-8");
try {
    $client = new SoapClient("http://***.******.com/services/AcceptedBusiness?wsdl");
    print_r($client->__getFunctions());
    print_r($client->__getTypes());  
} catch (SOAPFault $e) {
    print $e;
}
?>
WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial

After running: http://localhost/soap.php in the browser, the return result is as follows

WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial
Array
(
    [0] => ArrayOf_xsd_anyType introduceAcceptedBusiness(string $c3, string $c4, string $linkman, string $linknum, string $num, string $idcard, string $remark, string $address)
    [1] => ArrayOf_xsd_anyType introduceAcceptedBusinessByAiZhuangWei(string $subname, string $linkphone, string $idcard, string $address, string $businesstype, string $marketcode, string $surveycode, string $commanager, string $commanagerphone, string $bendiwang, string $fenju, string $zhiju, string $remark)
    [2] => string <strong>introduceAcceptedBusinessByStandardInterface</strong>(string $xmlStr)
    [3] => string introduceAcceptedBusinessByCallOut(string $xmlStr)
    [4] => string introduceAcceptedBusinessByYddj(string $xmlParam)
    [5] => ArrayOf_xsd_anyType queryAcceptedBusinessByAiZhuangWei(string $surveycode, string $starttime, string $endtime)
    [6] => string queryCallOutOrderByConfig(string $xmlParam)
)
Array
(
    [0] => anyType ArrayOf_xsd_anyType[]
)
WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial

There is a method introduceAcceptedBusinessByStandardInterface(string $xmlStr), which will be the interface to be used mentioned in the development document, and the parameter is an xml string

In addition, some interfaces mention SoapHeader authentication, which requires adding the __setSoapHeaders method. For details, see http://php.net/manual/zh/soapclient.setsoapheaders.php


4. Submit order

This step is to splice the xml string according to the development document, and then pass it in as a parameter of introduceAcceptedBusinessByStandardInterface
Create acceptedbusiness.php with the following content

WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial
<?php
header("content-type:text/html;charset=utf-8");
try {
    $client = new SoapClient('http://***.*******.com/services/AcceptedBusiness?wsdl');
    $xml = "
    <?xml version='1.0' encoding='UTF-8' ?>
    <PACKAGE>
      <C3>**电信</C3>
      <C4></C4>
      <LINKMAN>张三</LINKMAN>
      <LINKNUM>13412341234</LINKNUM>
      <LINKADDRESS>广东深圳</LINKADDRESS>
      <REMARK>iPhone 6</REMARK>
      <CHANNEL></CHANNEL>
      <GRIDCODE>1111111111111111111111111111111</GRIDCODE>
      <AGENTCODE>2111</AGENTCODE>
      <KEY>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111</KEY>
    </PACKAGE>
  ";
    $return = $client->introduceAcceptedBusinessByStandardInterface($xml);
    print_r($return);
} catch (SOAPFault $e) {
    print_r('Exception:'.$e);
}
?>
WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial

After executing in the browser, return

WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial
<?xml version="1.0" encoding="UTF-8"?>
<PACKAGE>
    <STATUS>0</STATUS>
    <REASON>入单成功!</REASON>
    <ORDERSEQ>2014100905523549742</ORDERSEQ>
</PACKAGE>
WSDL, SOAP call implementation process under PHP5, php5wsdl_PHP tutorial ​ ​

Reference: http://www.cnblogs.com/txw1958/p/php5-soap-wsdl.html

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/966284.htmlTechArticleWSDL, SOAP call implementation process under PHP5, php5wsdl 1. Basic concept SOAP (Simple Object Access Protocol) simple object access A protocol is a simple way to exchange information in a decentralized or distributed environment...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn