1

我是 UPS api 的新手,我正在尝试向 UPS 调用 ShipmentConfirmRequest,这是我使用 python 发送到 wwwcie.ups.com/ups.app/xml/ShipConfirm 的 xml 格式。

<?xml version="1.0"?>
            <AccessRequest xml:lang='en-US'>
                <AccessLicenseNumber>NUMBER</AccessLicenseNumber>
                <UserId>UUUUU</UserId>
                <Password>PASSWORD</Password>
            </AccessRequest>
            <?xml version="1.0"?>
            <ShipmentConfirmRequest>
                <Request>
                    <TransactionReference>
                        <CustomerContext>00001</CustomerContext>
                        <XpciVersion>1.0001</XpciVersion>
                    </TransactionReference>
                    <RequestAction>ShipConfirm</RequestAction>
                    <RequestOption>nonvalidate</RequestOption>
                </Request>

                <Shipment>
                    <Description>00001</Description>
                    <!--InvoiceLineTotal>
                        <CurrencyCode>EUR</CurrencyCode>
                        <MonetaryValue>4887</MonetaryValue>
                    </InvoiceLineTotal-->
                    <Shipper>
                        <Name>HELICONIA</Name>
                        <AttentionName>HELICONIA</AttentionName>
                        <Address>
                            <AddressLine1></AddressLine1>
                            <AddressLine2></AddressLine2>
                            <AddressLine3></AddressLine3>
                            <City></City>
                            <StateProvinceCode></StateProvinceCode>
                            <CountryCode></CountryCode>
                            <PostalCode></PostalCode>
                        </Address>
                        <PhoneNumber></PhoneNumber>
                        <ShipperNumber>NUMBER</ShipperNumber> 
                        <TaxIdentificationNumber></TaxIdentificationNumber>
                        <FaxNumber></FaxNumber>
                        <EMailAddress></EMailAddress>
                    </Shipper>
                    <ShipTo>
                        <CompanyName>Agriiolait</CompanyName>
                        <AttentionName></AttentionName>
                        <Address>
                            <AddressLine1>Agriiolait</AddressLine1>
                            <AddressLine2>69 rue de Chimay</AddressLine2>
                            <AddressLine3></AddressLine3>
                            <City>Wavre</City>
                            <StateProvinceCode></StateProvinceCode>
                            <CountryCode>BE</CountryCode>
                            <PostalCode></PostalCode>

                        </Address>
                        <PhoneNumber>+32 10 588 558</PhoneNumber>
                        <FaxNumber></FaxNumber>
                        <EMailAddress>info@agroiilait.com</EMailAddress>
                        <TaxIdentificationNumber></TaxIdentificationNumber>
                        <LocationID></LocationID>
                    </ShipTo>
                    <Service>
                        <Code>14</Code>
                        <Description>Next Day Air</Description>
                    </Service>
                </Shipment>

                <PaymentInformation>
                    <Prepaid>
                        <BillShipper>
                            <AccountNumber>25AC57</AccountNumber>
                        </BillShipper>
                    </Prepaid>
                </PaymentInformation>

            <Package>
                <Description></Description>
                <PackagingType>
                    <Code>01</Code>
                    <Description>UPS Letter</Description>
                </PackagingType>
                <Dimensions>
                    <UnitOfMeasurement>
                        <Code>IN</Code>
                        <Description>Inches</Description>
                    </UnitOfMeasurement>
                    <Length>11.0</Length>
                    <Width>110.0</Width>
                    <Height>11.0</Height>
                </Dimensions>
                <PackageWeight>
                    <UnitOfMeasurement>
                        <Code>LBS</Code>
                        <Description>Pounds</Description>
                    </UnitOfMeasurement>
                    <Weight>11.0</Weight>
                </PackageWeight>
                <ReferenceNumber>
                    <Code>01</Code>
                    <Value></Value>
                </ReferenceNumber>
                <ReferenceNumber>
                    <Code>02</Code>
                    <Value></Value>
                </ReferenceNumber>
                <PackageServiceOptions>
                    <InsuredValue>
                        <CurrencyCode>USD</CurrencyCode>
                        <MonetaryValue>975.0</MonetaryValue>
                    </InsuredValue>
                </PackageServiceOptions>
            </Package>


            <LabelSpecification>
                <LabelPrintMethod>
                    <Code>GIF</Code>
                    <Description>GIF</Description>
                </LabelPrintMethod>
                <HTTPUserAgent></HTTPUserAgent>
                <LabelImageFormat>
                    <Code>GIF</Code>
                </LabelImageFormat>
                <LabelStockSize>
                    <Height>8</Height>
                    <Width>8</Width>
                </LabelStockSize>
                <LabelImageFormat>
                    <Code>GIF</Code>
                    <Description>GIF</Description>
                </LabelImageFormat>
            </LabelSpecification>
        </ShipmentConfirmRequest>

但我得到了不好的反应,比如

<ShipmentConfirmResponse>
    <Response>
        <TransactionReference>
            <CustomerContext>00001</CustomerContext>
            <XpciVersion>1.0001</XpciVersion>
        </TransactionReference>
        <ResponseStatusCode>0</ResponseStatusCode>
        <ResponseStatusDescription>Failure</ResponseStatusDescription>
        <Error>
            <ErrorSeverity>Hard</ErrorSeverity>
            <ErrorCode>120416</ErrorCode>
            <ErrorDescription>A single billing option is required per shipment.
            </ErrorDescription>
        </Error>
    </Response>
</ShipmentConfirmResponse>

谁能指导我如何摆脱它?

4

3 回答 3

4

您的货件请求中缺少以下元素/ShipmentRequest/Shipment/PaymentInformati on/ShipmentCharge/Type。此元素的值可以是01 = 运输02 = 关税和税款。如果您需要有关运费类型的更多信息,请参阅Shipping Package Web Service Developers Guide(2012 年 12 月 31 日)的第 67 页。

请注意,只能有一个ShipmentCharge元素的Type等于01

最好的!

于 2013-06-13T12:42:53.760 回答
1

这个链接,您可能希望联系 UPS 支持,因为这似乎是一个常见错误 - 但特别是您缺少<ShipmentCharge>节点。

于 2013-06-12T13:59:04.133 回答
1

在 2013 年 7 月的文档中,看来 PaymentInformation 元素必须是 Shipment 元素的子元素。

根据我非常有限的经验,XPath 是:/ShipmentConfirmRequest/Shipment/PaymentInformation

于 2013-07-24T13:40:19.770 回答