PHP5 SOAP invocation principle and implementation process

Source: Internet
Author: User
Tags soap wsdl

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&gt ;</c4> <LINKMAN> Zhang San </LINKMAN> <LINKNUM>13412341234</LINKNUM> &LT;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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.