API UPS с использованием cURL и PHP ... правильно сформированная проблема XML - PullRequest
0 голосов
/ 01 сентября 2011

Сервер UPS продолжает давать мне такой ответ:

HTTP/1.1 200 OK
Server: Apache
Content-Length: 429
X-Powered-By: Servlet/2.5 JSP/2.1
Content-Type: application/xml
Expires: Wed, 31 Aug 2011 21:28:12 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Wed, 31 Aug 2011 21:28:12 GMT
Connection: keep-alive

с этой ошибкой:

<AddressValidationResponse>
   <Response>
      <TransactionReference>
         <XpciVersion>1.0001</XpciVersion>
      </TransactionReference>
      <ResponseStatusCode>0</ResponseStatusCode>
      <ResponseStatusDescription>Failure</ResponseStatusDescription>
      <Error>
         <ErrorSeverity>Hard</ErrorSeverity>
            <ErrorCode>10001</ErrorCode>
            <ErrorDescription>The XML document is not well formed</ErrorDescription>
      </Error>
   </Response>
</AddressValidationResponse>

Вот код PHP, который я отправляю на сервер. Есть ошибка, которую я пропускаю и пропускаю?

$data = '<?xml version=\"1.0\" ?>
                <AccessRequest xml:lang=\"en-US\">
                    <AccessLicenseNumber>$this->AccessLicenseNumber</AccessLicenseNumber>
                    <UserId>$this->UserId</UserId>
                    <Password>$this->Password</Password>
                </AccessRequest>
                <?xml version=\"1.0\" ?>
                <AddressValidationRequest xml:lang=\"en-US\">
                    <Request>
                        <TransactionReference>
                            <XpciVersion>1.0001</XpciVersion>
                        </TransactionReference> 
                        <RequestAction>XAV</RequestAction> 
                        <RequestOption>3</RequestOption>
                    </Request>
                    <AddressKeyFormat>
                        <AddressLine>$address</AddressLine>
                        <PoliticalDivision2>$city</PoliticalDivision2>
                        <PoliticalDivision1>$state</PoliticalDivision1>
                        <PostcodePrimaryLow>$zip</PostcodePrimaryLow>
                        <CountryCode>US</CountryCode>
                    </AddressKeyFormat>
                </AddressValidationRequest>';

Любая помощь будет принята с благодарностью. Спасибо.

1 Ответ

4 голосов
/ 01 сентября 2011

Вы должны использовать " вместо ' для переноса вашего xml, например:

$data="<?xml...";

PHP заменяет только переменные внутри "

...