UPS API 对美国国家/地区抛出 "Invalid Shipment content Value" 错误
UPS API throws an "Invalid Shipment content Value" error for US country
我在加拿大和美国国家/地区使用 UPS API,发货地始终是加拿大。
以下是我传递的请求,以获取 UPS 费率和预计到达时间。如果我为加拿大地址传递以下请求参数,它可以正常响应,但如果我在 UPS API 请求参数中传递美国地址,它会抛出 Invalid Shipment Contents Value
错误。
这是 UPS API Request 及其 Response 适用于加拿大地址,但不工作对于任何美国地址:
请求
<AccessRequest xml:lang="en-US">
<AccessLicenseNumber>******</AccessLicenseNumber>
<UserId>*****</UserId>
<Password>*****</Password>
</AccessRequest><?xml version="1.0"?>
<RatingServiceSelectionRequest xml:lang="en-US">
<Request>
<TransactionReference>
<CustomerContext>Rating and Service</CustomerContext>
<XpciVersion>1.0</XpciVersion>
</TransactionReference>
<RequestAction>Rate</RequestAction>
<RequestOption>Shoptimeintransit</RequestOption>
</Request>
<PickupType>
<Code>01</Code>
<Description>Regular Daily Pickup</Description>
</PickupType>
<Shipment> <Shipper><ShipperNumber>****</ShipperNumber> <Address>
<City>Scarborough</City>
<PostalCode>M1G 0A6</PostalCode>
<CountryCode>CA</CountryCode>
<StateProvinceCode>ON</StateProvinceCode>
</Address>
</Shipper>
<ShipTo>
<Address>
<PostalCode>14304</PostalCode>
<CountryCode>US</CountryCode>
<ResidentialAddress>02</ResidentialAddress>
<StateProvinceCode>NY</StateProvinceCode> </Address>
</ShipTo>
<ShipFrom>
<Address>
<PostalCode>M1G 0A6</PostalCode>
<CountryCode>CA</CountryCode>
<StateProvinceCode>ON</StateProvinceCode>
</Address>
</ShipFrom>
<DeliveryTimeInformation>
<PackageBillType>03</PackageBillType>
</DeliveryTimeInformation>
<Package>
<PackagingType>
<Code>00</Code>
</PackagingType>
<PackageWeight>
<UnitOfMeasurement>
<Code>LBS</Code>
</UnitOfMeasurement>
<Weight>0.2</Weight>
</PackageWeight>
</Package>
<ShipmentTotalWeight>
<UnitOfMeasurement>
<Code>LBS</Code>
</UnitOfMeasurement>
<Weight>0.2</Weight>
</ShipmentTotalWeight><RateInformation><NegotiatedRatesIndicator/></RateInformation> </Shipment>
</RatingServiceSelectionRequest>
回应
<RatingServiceSelectionResponse>
<Response>
<TransactionReference>
<CustomerContext>Rating and Service</CustomerContext>
<XpciVersion>1.0</XpciVersion>
</TransactionReference>
<ResponseStatusCode>0</ResponseStatusCode>
<ResponseStatusDescription>Failure</ResponseStatusDescription>
<Error>
<ErrorSeverity>Hard</ErrorSeverity>
<ErrorCode>111549</ErrorCode>
<ErrorDescription>Invalid Shipment Contents Value.</ErrorDescription>
</Error>
</Response>
</RatingServiceSelectionResponse>
上面的美国地址请求我做错了什么?
使用此 API 时似乎经常出错。
我做了一些谷歌搜索,这些是我找到的信息的一些链接。
https://twitter.com/shippo/status/952965049840054272
https://www.ups.com/lk/en/help-center/sri/apishippingerror.page
还有这个指南,也许有用。
我终于从这个来源找到了解决问题的方法。
https://medium.com/@soni.manthan0/ups-api-get-estimated-delivery-date-456f00e70742
根据上面的 link,它表示需要在 <shipment>
部分添加新的 <InvoiceLineTotal>
部分,并且 <city>
需要在 <ShipTo>
部分.
我在加拿大和美国国家/地区使用 UPS API,发货地始终是加拿大。
以下是我传递的请求,以获取 UPS 费率和预计到达时间。如果我为加拿大地址传递以下请求参数,它可以正常响应,但如果我在 UPS API 请求参数中传递美国地址,它会抛出 Invalid Shipment Contents Value
错误。
这是 UPS API Request 及其 Response 适用于加拿大地址,但不工作对于任何美国地址:
请求
<AccessRequest xml:lang="en-US">
<AccessLicenseNumber>******</AccessLicenseNumber>
<UserId>*****</UserId>
<Password>*****</Password>
</AccessRequest><?xml version="1.0"?>
<RatingServiceSelectionRequest xml:lang="en-US">
<Request>
<TransactionReference>
<CustomerContext>Rating and Service</CustomerContext>
<XpciVersion>1.0</XpciVersion>
</TransactionReference>
<RequestAction>Rate</RequestAction>
<RequestOption>Shoptimeintransit</RequestOption>
</Request>
<PickupType>
<Code>01</Code>
<Description>Regular Daily Pickup</Description>
</PickupType>
<Shipment> <Shipper><ShipperNumber>****</ShipperNumber> <Address>
<City>Scarborough</City>
<PostalCode>M1G 0A6</PostalCode>
<CountryCode>CA</CountryCode>
<StateProvinceCode>ON</StateProvinceCode>
</Address>
</Shipper>
<ShipTo>
<Address>
<PostalCode>14304</PostalCode>
<CountryCode>US</CountryCode>
<ResidentialAddress>02</ResidentialAddress>
<StateProvinceCode>NY</StateProvinceCode> </Address>
</ShipTo>
<ShipFrom>
<Address>
<PostalCode>M1G 0A6</PostalCode>
<CountryCode>CA</CountryCode>
<StateProvinceCode>ON</StateProvinceCode>
</Address>
</ShipFrom>
<DeliveryTimeInformation>
<PackageBillType>03</PackageBillType>
</DeliveryTimeInformation>
<Package>
<PackagingType>
<Code>00</Code>
</PackagingType>
<PackageWeight>
<UnitOfMeasurement>
<Code>LBS</Code>
</UnitOfMeasurement>
<Weight>0.2</Weight>
</PackageWeight>
</Package>
<ShipmentTotalWeight>
<UnitOfMeasurement>
<Code>LBS</Code>
</UnitOfMeasurement>
<Weight>0.2</Weight>
</ShipmentTotalWeight><RateInformation><NegotiatedRatesIndicator/></RateInformation> </Shipment>
</RatingServiceSelectionRequest>
回应
<RatingServiceSelectionResponse>
<Response>
<TransactionReference>
<CustomerContext>Rating and Service</CustomerContext>
<XpciVersion>1.0</XpciVersion>
</TransactionReference>
<ResponseStatusCode>0</ResponseStatusCode>
<ResponseStatusDescription>Failure</ResponseStatusDescription>
<Error>
<ErrorSeverity>Hard</ErrorSeverity>
<ErrorCode>111549</ErrorCode>
<ErrorDescription>Invalid Shipment Contents Value.</ErrorDescription>
</Error>
</Response>
</RatingServiceSelectionResponse>
上面的美国地址请求我做错了什么?
使用此 API 时似乎经常出错。 我做了一些谷歌搜索,这些是我找到的信息的一些链接。
https://twitter.com/shippo/status/952965049840054272
https://www.ups.com/lk/en/help-center/sri/apishippingerror.page
还有这个指南,也许有用。
我终于从这个来源找到了解决问题的方法。
https://medium.com/@soni.manthan0/ups-api-get-estimated-delivery-date-456f00e70742
根据上面的 link,它表示需要在 <shipment>
部分添加新的 <InvoiceLineTotal>
部分,并且 <city>
需要在 <ShipTo>
部分.