In this paper, an example of the development of a company's iphone 6 mobile phone reservation interface is introduced, and the implementation process of soap call is PHP5.
First, the basic concept
Soap (Simple Object access Protocol) is a simple protocol for exchanging information in a decentralized or distributed environment, an XML-based protocol that consists of four parts: the SOAP Package (envelop), The wrapper defines a framework that describes what the content in the message is, who sent it, who should accept and handle it, and how to handle it; the SOAP encoding rule (encoding rules), which represents an instance of the data type that the application needs to use; SOAP RPC Representation (RPC representation), which represents the contract for remote procedure calls and replies; A SOAP binding (binding) that uses the underlying protocol to exchange information.
WSDL (Web service Description Language) is the standard XML format for describing XML Web services, and WSDL is presented by developers such as Ariba, Intel, IBM, and Microsoft. It defines the operations and messages sent and received by a given Web service in an abstract way that is not specific to the language. In its definition, you cannot consider WSDL as an Object interface definition language, for example, application architectures such as CORBA or COM use the Object interface definition language. WSDL maintains protocol neutrality, but it does have built-in support for binding soap, thus establishing an inextricable connection with soap. So, when I discuss WSDL in this article, I'll assume that you have soap as your communication protocol.
While soap and WSDL are two of the standards of Web service, 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.
Second, the configuration under the PHP5
In the PHP configuration file php.ini, locate the
Extension=php_soap.dll
then remove the previous; Number and restart the Web service
Iii. querying Web service methods and parameters, data types
One province telecom Company's entry interface is HTTP://***.******.COM/SERVICES/ACCEPTEDBUSINESS?WSDL
We use SoapClient's __geunctions () and __gettypes () methods to view the interface's methods, parameters, and data types
Only the interfaces listed in __getfunctions can be called by soap.
Create code under the root directory soap.php
<?phpheader ("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;}? >
After the browser runs: http://localhost/soap.php, the results are as follows
Array ([0] = Arrayof_xsd_anytype introduceacceptedbusiness (string $c 3, String $c 4, String $linkman, String $li Nknum, String $num, String $idcard, String $remark, String $address) [1] = Arrayof_xsd_anytype Introduceacceptedbus Inessbyaizhuangwei (String $subname, String $linkphone, String $idcard, String $address, String $businesstype, String $mar Ketcode, String $surveycode, String $commanager, String $commanagerphone, String $bendiwang, String $fenju, String $zhiju, String $remark) [2] = = string introduceacceptedbusinessbystandardinterface (String $xmlStr) [3] = = String Introduceacceptedbusinessbycallout (string $xmlStr) [4] = = String Introduceacceptedbusinessbyyddj ( String $xmlParam) [5] = Arrayof_xsd_anytype Queryacceptedbusinessbyaizhuangwei (string $surveycode, String $startti Me, String $endtime) [6] = = String Querycalloutorderbyconfig (string $xmlParam)) Array ([0] = AnyType arrayof_x Sd_anytype[])
There is a method Introduceacceptedbusinessbystandardinterface (string $xmlStr) that will be the interface to be used in the development documentation, with the arguments as XML strings
There are other interfaces mentioned in the SoapHeader certification, which requires the addition of __setsoapheaders method, specific to see http://php.net/manual/zh/soapclient.setsoapheaders.php
Iv. Submission of orders
This step involves stitching the XML string according to the development document, and then passing in as a parameter to the Introduceacceptedbusinessbystandardinterface
Create a acceptedbusiness.php with the following content
<?phpheader ("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>** Telecom </C3> <c4> ;</c4> <LINKMAN> Zhang San </LINKMAN> <LINKNUM>13412341234</LINKNUM> <LINKADDRESS&G t; Guangdong Shenzhen </LINKADDRESS> <remark>iphone 6</remark> <CHANNEL></CHANNEL> <gridco De>1111111111111111111111111111111</gridcode> <AGENTCODE>2111</AGENTCODE> <key>111111 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111</key> </PACKAGE> "; $return = $client->introduceacceptedbusinessbystandardinterface ($xml); Print_r ($return);} catch (SoapFault $e) {print_r (' Exception: '. $e);}? >
After executing in the browser, return
<?xml version= "1.0" encoding= "UTF-8"?><package> <STATUS>0</STATUS> <reason > Success in!</reason> <ORDERSEQ>2014100905523549742</ORDERSEQ></PACKAGE>
PHP5 SOAP invocation principle and implementation process