[RESOLU] Consommer un service web soap

Himitsu san
Invité n'ayant pas de compte PHPfrance

21 sept. 2016, 17:26

Bonjour,

je débute en PHP et je dois consommer un Service Web avec authentification.
et la ... c'est le drame ...

je ne trouve pas comment
<?php
/**
 * Invocation du Service WEB WSAddV
 */

ini_set('soap.wsdl_cache_enabled', 0);

function affiche($param) {
    echo '<pre>';
    print_r($param);
    echo '</pre>';    
}

try {
    $login       = 'xxx';
    $pwd         = 'xxx';   
    $wsdl_url    = 'http://5.135.139.174:8080/services/WSAddV?wsdl';
    
    $adr         = Array('AddressLine1'=> $_POST['Adr1'], 
                         'AddressLine2'=> $_POST['Adr2'],
                         'AddressLine3'=> $_POST['Adr3'],
                         'AddressLine4'=> $_POST['Adr4'],
                         'City'=> $_POST['Ville'],
                         'PostalCode'=> $_POST['CP'],
                         'Country'=> $_POST['Pays']
                        );
    echo "Affiche l'adresse a traiter";
    affiche($adr);
    
    echo "En mode Dev... pour ne pas avoir a resaisir a chaque fois l'adresse a traiter";
    $adr['AddressLine1'] = '113 rue faidherbe';
    $adr['City']         = 'DRANCY';
    $adr['PostalCode']   = '93700';
    $adr['Pays']         = 'FR';
    affiche($adr);

    $user    = Array('context' => Array('accountId'=>$login,'accountPassword'=>$pwd));
    
    echo "Appel du Web Service";
    $client = new SoapClient($wsdl_url, $user);
    affiche($client);
    
    $fonctions = $client->WSAddV($adr);
    affiche($fonctions);
    
    $result = $response->WSAddVResponse();    
    
    affiche($result);
   
} catch (Exception $e) {
    echo "Exception occured: " . $e;
}
et le WSDL ...

Code : Tout sélectionner

<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="WSAddV" targetNamespace="http://www.xx.com/" xmlns:ns1="http://www.xx.com/services/WSAddV" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.xx.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.xx.com/services/WSAddV" xmlns:tns="http://www.xx.com/services/WSAddV" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="requestRow" type="tns:requestRow" /> <xs:element name="responseRow" type="tns:responseRow" /> <xs:complexType name="WSAddVRequest"> <xs:sequence> <xs:element form="qualified" name="context" type="tns:context" /> <xs:element form="qualified" minOccurs="0" name="options" type="tns:options" /> <xs:element form="qualified" name="rows"> <xs:complexType> <xs:sequence> <xs:element form="qualified" maxOccurs="unbounded" name="row" type="tns:requestRow" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="context"> <xs:sequence> <xs:element form="qualified" name="account.id" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="account.password" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="options"> <xs:sequence /> </xs:complexType> <xs:complexType name="requestRow"> <xs:all> <xs:element form="qualified" minOccurs="0" name="AddressLine1" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressLine2" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressLine3" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressLine4" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="City" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="PostalCode" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Country" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="StateProvince" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="FirmName" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="user_fields"> <xs:complexType> <xs:sequence> <xs:element form="qualified" maxOccurs="unbounded" minOccurs="0" name="user_field" type="tns:user_field" /> </xs:sequence> </xs:complexType> </xs:element> </xs:all> </xs:complexType> <xs:complexType name="user_field"> <xs:sequence> <xs:element form="qualified" name="name" type="xs:string" /> <xs:element form="qualified" name="value" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="WSAddVResponse"> <xs:sequence> <xs:element form="qualified" minOccurs="0" name="error" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="rows"> <xs:complexType> <xs:sequence> <xs:element form="qualified" maxOccurs="unbounded" minOccurs="0" name="row" type="tns:responseRow" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="responseRow"> <xs:all> <xs:element form="qualified" minOccurs="0" name="CountryLevel" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressLine1" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressLine2" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressLine3" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressLine4" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="City" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="StateProvince" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="PostalCode" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Country" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="cRet" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="QAdr" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="ProcessedBy" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock1" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock2" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock3" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock4" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock5" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock6" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock7" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock8" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AddressBlock9" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="AdditionalInputData" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="FirmName" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="POBox" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="IntINSEECode" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="HouseNumber" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="StreetName" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="StreetSuffix" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Street.Result" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="POBox.Result" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="SubBuilding" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Floor" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Room" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Locality" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Suburb" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="MailabilityScore" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="IntHexaviaCode" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="IntHexacleCode" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="IntHexacleStatus" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Status" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Status.Code" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="Status.Description" type="xs:string" /> <xs:element form="qualified" minOccurs="0" name="user_fields"> <xs:complexType> <xs:sequence> <xs:element form="qualified" maxOccurs="unbounded" minOccurs="0" name="user_field" type="tns:user_field" /> </xs:sequence> </xs:complexType> </xs:element> </xs:all> </xs:complexType> <xs:element name="WSAddVRequest" nillable="true" type="tns:WSAddVRequest" /> <xs:element name="WSAddVResponse" nillable="true" type="tns:WSAddVResponse" /> </xs:schema> </wsdl:types> <wsdl:message name="WSAddV"> <wsdl:part element="ns1:WSAddVRequest" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="WSAddVResponse"> <wsdl:part element="ns1:WSAddVResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:portType name="WSAddV"> <wsdl:operation name="WSAddV"> <wsdl:input message="tns:WSAddV" name="WSAddV"> </wsdl:input> <wsdl:output message="tns:WSAddVResponse" name="WSAddVResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="WSAddVSoapBinding" type="tns:WSAddV"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="WSAddV"> <soap:operation soapAction="" style="document" /> <wsdl:input name="WSAddV"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="WSAddVResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="WSAddV"> <wsdl:port binding="tns:WSAddVSoapBinding" name="WSAddVPort"> <soap:address location="http://xxx.xxx.xxx.xxx:8080/services/WSAddV" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
Modifié en dernier par moogli le 22 sept. 2016, 13:07, modifié 1 fois.
Raison : un peu de couleur dans ce monde terne (bbcode ...)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 sept. 2016, 13:11

salut

et c'est quoi le soucis ?
pour l'authentification il y a des exemples dans la doc, par exemple http://php.net/manual/fr/soapclient.soa ... p#Vu103305
il y a pas mal d'exemple avec différentes façon de faire, il faut voir de quoi tu as besoin et tester ;)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 1 Messages

22 sept. 2016, 13:28

salut

et c'est quoi le soucis ?
pour l'authentification il y a des exemples dans la doc, par exemple http://php.net/manual/fr/soapclient.soa ... p#Vu103305
il y a pas mal d'exemple avec différentes façon de faire, il faut voir de quoi tu as besoin et tester ;)


@+
Bonjour,

ben ... le probleme , c'est que malgres tous les tests que j'ai pu faire je ne sais pas comment faire pour m'authentifier.

alors que j'utilise ce meme service web sans probleme en C#

voiloi voila ...