首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有php的SOAP1.2请求

带有php的SOAP1.2请求
EN

Stack Overflow用户
提问于 2019-04-08 08:33:41
回答 1查看 1.5K关注 0票数 0

我对Server的请求有问题:https://weblabeling.gls-italy.com/ilswebservice.asmx?WSDL

这是我的参数:

代码语言:javascript
复制
<?php
$params = array(
                 'XMLInfoParcel' => array(
                            'Info' => array(
                                'SedeGls' => $sede_GLS,
                                'CodiceClienteGls' => $codice_cliente,
                                'PasswordClienteGls' => $password_gls,
                                'Parcel' => array(
                                                   'CodiceContrattoGls' => $codice_contratto,
                                                   'RagioneSociale' => $destinatario,
                                                   'Indirizzo' => $adress,
                                                   'Localita' => $city,
                                                   'Zipcode' => $cap,
                                                   'Provincia' => $provincia,
                                                   'Bda' => $order_number,
                                                   'Colli' => '1',
                                                   'Incoterm' => '',
                                                   'PesoReale' => '3',
                                                   'ImportoContrassegno' => $imp_cont,
                                                   'NoteSpedizione' => 'prove note',
                                                   'TipoPorto' => 'F',
                                                   'Assicurazione' => '',
                                                   'PesoVolume' => '',
                                                   'TipoCollo' => '0',
                                                   'FrancoAnticipata' => '',
                                                   'RiferimentoCliente' => '',
                                                   'NoteAggiuntive' => 'prova',
                                                   'CodiceClienteDestinatario' => '',
                                                   'Email' => $email,
                                                   'Cellulare1' => $phone,
                                                   'ServiziAccessori' => '',
                                                   'ModalitaIncasso' => 'CONT',
                                                   'DataPrenotazioneGDO' => '',
                                                    'OrarioNoteGDO' => '',
                                                    'GeneraPdf' => '0',
                                                    'ContatoreProgressivo' => '',
                                                    'IdentPIN' => '',
                                                    'AssicurazioneIntegrativa' => '',
                                                    'TipoSpedizione' => '',
                                                    'ValoreDichiarato' => '',
                                                    'PersonaRiferimento' => '',
                                                    'Contenuto' => '',
                                                    'TelefonoDestinatario' => '',
                                                    'CategoriaMerceologica' => '',
                                                    'FatturaDoganale' => '',
                                                    'DataFatturaDoganale' => '',
                                                    'PezziDichiarati' => '',
                                                    'NazioneOrigine' => '',
                                                    'TelefonoMittente' => ''
                                                  ),),),
                    );

代码语言:javascript
复制
<?php 

       $client = new SoapClient('https://weblabeling.gls-italy.com/ilswebservice.asmx?WSDL', array('soap_version' => SOAP_1_2));
        // populate the inputs....


            $params = crea_spedizione();

$result = $client->AddParcel($params);


$array = json_decode(json_encode($result), true);
$xml = simplexml_load_string($result->AddParcelResult->any);

响应是xml不兼容,我也尝试过使用Post,但我也有同样的问题。XML生成正在工作。问题是xml文件,请求服务器是格式文本,但我不明白

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 09:11:05

与意大利的GLS WEBSERVICE一起很好地添加包裹

代码语言:javascript
复制
$xml_good ='&lt;Info&gt;&lt;SedeGls&gt;XX&lt;/SedeGls&gt;&lt;CodiceClienteGls&gt;000000&lt;/CodiceClienteGls&gt;&lt;PasswordClienteGls&gt;passwr&lt;/PasswordClienteGls&gt;&lt;Parcel&gt;&lt;CodiceContrattoGls&gt;3743&lt;/CodiceContrattoGls&gt;&lt;RagioneSociale&gt;Raffaele Filomena&lt;/RagioneSociale&gt;&lt;Indirizzo&gt;Via Damiano Chiesa 7/c&lt;/Indirizzo&gt;&lt;Localita&gt;Carovigno&lt;/Localita&gt;&lt;Zipcode&gt;72012&lt;/Zipcode&gt;&lt;Provincia&gt;BR&lt;/Provincia&gt;&lt;Bda&gt;001234&lt;/Bda&gt;&lt;Colli&gt;1&lt;/Colli&gt;&lt;Incoterm&gt;&lt;/Incoterm&gt;&lt;PesoReale&gt;2&lt;/PesoReale&gt;&lt;/Parcel&gt;&lt;/Info&gt;';



        //Data, connection, auth
       // $dataFromTheForm = $_POST['fieldName']; // request data from the form
        $soapUrl = "https://labelservice.gls-italy.com/ilswebservice.asmx?op=AddParcel"; // asmx URL of WSDL


        // xml post structure

        $xml_post_string = '<?xml version="1.0" encoding="utf-8"?>
                            <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                              <soap:Body>
                                <AddParcel xmlns="https://labelservice.gls-italy.com/">
                                  <XMLInfoParcel>'.$xml_good.'</XMLInfoParcel>
                                 </AddParcel>
                              </soap:Body>
                            </soap:Envelope>';   // data from the form, e.g. some ID number

           $headers = array(
                        "Content-type: text/xml;charset=\"utf-8\"",
                        "Accept: text/xml",
                        "Cache-Control: no-cache",
                        "Pragma: no-cache",
                        "SOAPAction: https://labelservice.gls-italy.com/AddParcel",
                        "Content-length: ".strlen($xml_post_string),
                    ); //SOAPAction: your op URL

            $url = $soapUrl;

            // PHP cURL  for https connection with auth
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
            curl_setopt($ch, CURLOPT_TIMEOUT, 10);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); // the SOAP request
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

            // converting
            $response = curl_exec($ch);
            curl_close($ch);


var_dump($response);

这与GLS Webservice(意大利)很好地工作,以添加包,现在我尝试交互XML响应文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55569218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档