Мне нужно создать запрос из WS SOAP, но я пытаюсь установить параметры и всегда возвращаю мне ошибку, кто-то может мне помочь и показать, как я могу построить этот запрос.
введите описание изображения здесь
по соображениям безопасности я не могу опубликовать некоторые реальные значения (WSDL, apikey, pass), но я тестирую этот WS с soapUI с реальными значениями, и результат был в порядке.
Я сделал эти варианты:
ТЕСТ 01:
$wsdl = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$client = new SoapClient($wsdl,array('trace' => TRUE,'encoding' => 'UTF-8'));
$ArrayOfInt = array(
'item' => 0
);
$Cotizador_detalleEmpaques = array(
'ubl' => '0',
'alto' => '12',
'ancho' => '14',
'largo' => '20',
'peso' => '5',
'unidades' => '1'
);
$ArrayOfCotizador_detalleempaques = array(
'item' => new SoapVar($Cotizador_detalleEmpaques,SOAP_ENC_OBJECT,'item')
);
$Cotizador_cotizarIn = array(
'nit' => '890904713',
'div' => '01',
'cuenta' => '3',
'producto' => '23',
'origen' => '11001000',
'destino' => '05001000',
'valoracion' => '50000',
'nivel_servicio' => new SoapVar($ArrayOfInt,SOAP_ENC_OBJECT,'nivel_servicio'),
'detalle' => new SoapVar($ArrayOfCotizador_detalleempaques,SOAP_ENC_OBJECT,'detalle'),
'apikey' => 'xxxxxxxxxxxxxxxxxxxxxxxx',
'clave' => 'xxxxxxxxxxxxxxxx'
);
$response = $client->Cotizador_cotizar(new SoapVar($Cotizador_cotizarIn,SOAP_ENC_OBJECT,'p'));
ТЕСТ 02:
$wsdl = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$client = new SoapClient($wsdl,array('trace' => TRUE,'encoding' => 'UTF-8'));
$ArrayOfInt = array(
'item' => new SoapVar(0,XSD_INT,'ubl')
);
$Cotizador_detalleEmpaques = array(
'ubl' => new SoapVar('0',XSD_STRING,'ubl'),
'alto' => new SoapVar('12',XSD_STRING,'alto'),
'ancho' => new SoapVar('14',XSD_STRING,'ancho'),
'largo' => new SoapVar('20',XSD_STRING,'largo'),
'peso' => new SoapVar('5',XSD_STRING,'peso'),
'unidades' => new SoapVar('1',XSD_STRING,'unidades')
);
$ArrayOfCotizador_detalleempaques = array(
'item' => new SoapVar($Cotizador_detalleEmpaques,SOAP_ENC_OBJECT,'item')
);
$Cotizador_cotizarIn = array(
'nit' => new SoapVar('890904713',XSD_STRING,'nit'),
'div' => new SoapVar('01',XSD_STRING,'div'),
'cuenta' => new SoapVar('3',XSD_STRING,'cuenta'),
'producto' => new SoapVar('23',XSD_STRING,'producto'),
'origen' => new SoapVar('11001000',XSD_STRING,'origen'),
'destino' => new SoapVar('05001000',XSD_STRING,'destino'),
'valoracion' => new SoapVar('50000',XSD_STRING,'valoracion'),
'nivel_servicio' => new SoapVar($ArrayOfInt,SOAP_ENC_OBJECT,'nivel_servicio'),
'detalle' => new SoapVar($ArrayOfCotizador_detalleempaques,SOAP_ENC_OBJECT,'detalle'),
'apikey' => new SoapVar('xxxxxxxxxxxxxxxxxxxxxxxx',XSD_STRING,'apikey'),
'clave' => new SoapVar('xxxxxxxxxxxxxxxx',XSD_STRING,'clave')
);
$response = $client->Cotizador_cotizar(new SoapVar($Cotizador_cotizarIn,SOAP_ENC_OBJECT,'p'));
PHP Фатальная ошибка: Uncaught SoapFault исключение: [0] Ошибка, El campo apikey es обязателен y нет puede ser vacio