Я решил это и разместил здесь, чтобы он мог быть полезен другим с такой же проблемой.Я передаю этот вопрос, и выбранный ответ решил мою проблему.Код, написанный в вопросе, нуждается только в одной модификации, переменная $soapBody
была ранее передана в массиве, который должен был быть передан непосредственно без массива.Правильная строка показана ниже:
$result = $AuthClient->GetRatingEngineQuote($soapBody);
XML-файл читается и передается в виде XML-строки, поэтому его нужно начинать с фактического тела, как показано ниже:
<GetRatingEngineQuote xmlns="http://tempuri.org/">
<request>
<CustomerId>customerid</CustomerId>
<QuoteType>B2B</QuoteType>
<ServiceType>LTL</ServiceType>
<QuoteShipment>
<IsBlind>false</IsBlind>
<PickupDate>2019-02-13T14:12:48</PickupDate>
<SortAndSegregate>false</SortAndSegregate>
<ShipmentLocations>
<Location>
<LocationName>Location</LocationName>
<LocationType>Origin</LocationType>
<HasLoadingDock>false</HasLoadingDock>
<IsConstructionSite>false</IsConstructionSite>
<IsResidential>false</IsResidential>
<RequiresInsideDelivery>false</RequiresInsideDelivery>
<IsTradeShow>false</IsTradeShow>
<RequiresLiftgate>false</RequiresLiftgate>
<HasAppointment>false</HasAppointment>
<IsLimitedAccess>false</IsLimitedAccess>
<ContactName>testuser</ContactName>
<ContactPhone>5551237777</ContactPhone>
<ContactEmail>XXXXX</ContactEmail>
<LocationAddress>
<AddressName>Address 1</AddressName>
<StreetAddress>123 Main</StreetAddress>
<City>Ohio</City>
<StateCode>OH</StateCode>
<PostalCode>30303</PostalCode>
<CountryCode>US</CountryCode>
</LocationAddress>
</Location>
<Location>
<LocationName>Location name</LocationName>
<LocationType>Destination</LocationType>
<HasLoadingDock>false</HasLoadingDock>
<IsConstructionSite>false</IsConstructionSite>
<IsResidential>false</IsResidential>
<RequiresInsideDelivery>false</RequiresInsideDelivery>
<IsTradeShow>false</IsTradeShow>
<RequiresLiftgate>false</RequiresLiftgate>
<HasAppointment>false</HasAppointment>
<IsLimitedAccess>false</IsLimitedAccess>
<ContactName>Somename</ContactName>
<ContactPhone>33333333</ContactPhone>
<ContactEmail>abc@gmail.com</ContactEmail>
<LocationAddress>
<AddressName>Address 2</AddressName>
<StreetAddress>123 Main</StreetAddress>
<City>Atlanta</City>
<StateCode>GA</StateCode>
<PostalCode>60606</PostalCode>
<CountryCode>US</CountryCode>
</LocationAddress>
</Location>
</ShipmentLocations>
<ShipmentProducts>
<Product>
<Class>400</Class>
<Weight>200</Weight>
<Length>50</Length>
<Width>48</Width>
<Height>36</Height>
<ProductDescription>Books</ProductDescription>
<PackageType>Pallets_48x48</PackageType>
<IsStackable>false</IsStackable>
<DeclaredValue>0</DeclaredValue>
<CommodityType>Metals</CommodityType>
<ContentType>NewCommercialGoods</ContentType>
<IsHazardousMaterial>false</IsHazardousMaterial>
<DimWeight>0</DimWeight>
<EstimatedWeight>0</EstimatedWeight>
<PieceCount>1</PieceCount>
<ItemNumber>0</ItemNumber>
</Product>
</ShipmentProducts>
</QuoteShipment>
</request>
<user>
<Name>somename</Name>
<Password>somepassword</Password>
<CredentialType>Default</CredentialType>
</user>
</GetRatingEngineQuote>