Works in .NET, don't work in PHP? SOAP -


edit: managed through asking server developer split string array on side. works now.

anyway, never managed know how correctly pass array .net soap server.


i have soap client in php not working. server developer handled me working .net example. paste here both. missing something?

regards

php code

$res = new cresult;  //$orequest = new insertventa; (throws same error wether specified or not)  $pcaccesorios = new cacc_venta;  $ouser = new cuser; $ouser->login = "hidden";  $ouser->pass  = "hidden"; //$ouser->error = 0;  $oaviso = new cventa; $oaviso->nombre = str_pad($nombre, 150);  $oaviso->direccion = str_pad($direccion, 250);        $oaviso->cp = str_pad($codpostal, 5);               $oaviso->poblacion = str_pad($poblacion, 150);        $oaviso->provincia = str_pad($provincia, 75);       $oaviso->pers_contacto = str_pad($pers_contacto, 150);    $oaviso->tfns_contacto = str_pad($telefono, 50);    $oaviso->email = str_pad($email, 75);  $oaviso->nif = str_pad($nifcif, 10); $oaviso->error = 0; //$oaviso->haserror = 0; //$oaviso->$id_orden = 0;   $orequest->ouser = $ouser;        $orequest->oaviso = $oaviso;  $maxindex = count($listacompra); ( $i = 0 ; $i < $maxindex; $i++) {     $array_de_2 = explode(" ", $listacompra[$i]);      $pcaccesorios->referencia = $array_de_2[1];     $pcaccesorios->unidades = $array_de_2[0];      $orequest->oacc[$i] = $pcaccesorios; }  //$orequest->oacc = $oacc;  //var_dump($orequest);  try {     $client = new soapclient($wdsladdress, array("trace" => 1,"exceptions"=>0));     //print $client->__gettypes();     //var_dump($client->__getfunctions());     //print "conectado      "; } catch (exception $e) {  echo '', $e->getmessage(), "\n";  die(); }  try {                  //$res=$client->insert_venta($ouser, $oaviso, $oacc);      $res=$client->insert_venta($orequest);     //$client->__getlastrequest();     //$res->insert_ventaresult;     $id_orden=(string)$res->insert_ventaresult->id_orden;     var_dump($id_orden);     print var_dump($res);                             } catch (exception $e) { echo '',  $e->getmessage(), "\n"; die(); } 

.net code

dim oaviso new ws_tsg.cventa oaviso.cp = "24400" oaviso.direccion = "mi direccion " oaviso.email = "email@servidor.com " 'oaviso.id_orden = oaviso.nif = "a12345678 " oaviso.nombre = "mi nombre " oaviso.pers_contacto = "anonimo nadie " oaviso.poblacion = "vega de la esquina " oaviso.provincia = "leon " oaviso.tfns_contacto = "987343434 "  dim oacc new ws_tsg.arrayofcacc_venta dim oacc_venta new ws_tsg.cacc_venta  oacc_venta.referencia = "kithdtv72" oacc_venta.unidades = "1" oacc.add(oacc_venta) oacc_venta.referencia = "usbtv82" oacc_venta.unidades = "2" oacc.add(oacc_venta) oacc_venta.referencia = "acdctv425" oacc_venta.unidades = "1" oacc.add(oacc_venta)  oaviso = ws.insert_venta(ouser, oaviso, oacc) 

the error is:

server unable read request. ---> there error in xml document (2, 280). ---> input string not in correct format.

any help? thanks!

i have issues soap communication between .net , php.

for me solution use zend soap , specific dotnet client class:

first @ all, use zendsoap component (it's wrapper around soap php's extension wich provide usefull function , configuration stuff) : http://framework.zend.com/manual/2.2/en/modules/zend.soap.client.html

the specific client\dotnet class:

<?php use zend\soap\client; $client = new client\dotnet($wdsladdress, array("trace" => 1,"exceptions"=>0)); $client->method(); 

api doc : http://framework.zend.com/apidoc/2.0/classes/zend.soap.client.dotnet.html


Comments