Я провел несколько тестов с Providr.io. Я могу получить информацию с сайта, но когда я использую сгенерированный Providr пакет локально, я получаю ошибку «999».
Информация для входа (учетные данные) отсутствует в запросе, в каком файле мне вводить логин и пароль?
Мой код (с использованием файла tutorial.php):
require_once __DIR__ . '/vendor/autoload.php';
/**
* Minimal options
*/
$options = array(
\WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_URL => 'http://www.gls-group.eu/276-I-PORTAL-WEBSERVICE/services/ParcelShopSearch/wsdl/2010_01_ParcelShopSearch.wsdl',
\WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_TRACE => true,
\WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_CLASSMAP => ClassMap::get(),
\WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_LOGIN => 'mylog',
\WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_PASSWORD => 'mypass',
);
$id = "2500686161";
/**
* Samples for Get ServiceType
*/
$get = new \ServiceType\Get($options);
/**
* Sample call for GetParcelShopById operation/method
*/
if ($get->GetParcelShopById(new \StructType\GetParcelShopByIdRequestType($id)) !== false) {
print_r($get->getResult());
} else {
print_r($get->getLastError());
}
Что я получаю из браузера:
StructType\GetParcelShopByIdResponseType Object ( [ExitCode] => StructType\GLSExitCode Object ( [ErrorCode] => 999 [ErrorDscr] => ) [ParcelShop] => StructType\GLSParcelShop Object ( [ParcelShopId] => [Address] => StructType\GLSAddress Object ( [Name1] => [Street1] => [ZipCode] => [City] => [Country] => [Name2] => [Name3] => [ContactName] => [BlockNo1] => [Street2] => [BlockNo2] => [Province] => ) [Phone] => StructType\GLSPhonenumber Object ( [Country] => [Region] => [Contact] => [Extension] => ) [Mobile] => StructType\GLSPhonenumber Object ( [Country] => [Region] => [Contact] => [Extension] => ) [Fax] => StructType\GLSPhonenumber Object ( [Country] => [Region] => [Contact] => [Extension] => ) [Email] => [URL] => [GLSCoordinates] => StructType\GLSCoordinates Object ( [Latitude] => 0 [Longitude] => 0 ) [GLSWorkingDay] => ) )
Я что-то забыл?






Вы должны использовать генератор WSDL для php, который генерирует PHP SDK, чтобы легко использовать SOAP WS.
Взгляните на проект PackageGenerator. Он генерирует классы структур, используемые для создания запроса, и классы служб для отправки запроса.
Тогда обработка ответа упрощается, поскольку вы имеете дело только с известными классами объектов, созданными генератором, удачи,
Я нашел решение:
/**
* Sample call for GetParcelShopById operation/method
*/
if ($get->GetParcelShopById(new \StructType\GetParcelShopByIdRequestType("*ID*", new \StructType\GLSUserCredentials($userName = "*MyUserName*", $password = '*MyPassword*'))) !== false) {
print_r($get->getResult());
} else {
print_r($get->getLastError());
}
значение нам нужно заменить на вашу личную информацию
Пожалуйста, разместите свой вопрос на английском языке.