2013-06-07 2 views
0

PHP XML 요청 및 응답에 약간 손실되었습니다. 나는 USPS의 요금 계산기 API를 웹 사이트에 적용 할 필요가 있으며, 내가 알고있는 것은 그들이 제공하는 XML이다. 자, PHP를 사용하여 항목의 ZIP 및 무게를 API에 어떻게 제출할 수 있었는지 궁금합니다. PHP는 XML 요청 및 응답을 보내고받습니다.

  • uspsRateCalculator.php는 ZIP와 무게를 수신 uspsRateCalculator.php에 ZIP과 무게를 제출하고,에 요청해야

    • checkout.php을 : 지금 현재로

      내가 가진 무엇 USPS의 API (여기에 내가 잃어버린입니다) 여기

  • $xml = rawurlencode('http://SERVER/PATH?API=RateV4&XML=<RateV4Request USERID="023TAHAR4995" ><Revision/> 
        <Package ID="1ST"> 
          <Service>PRIORITY</Service> 
          <ZipOrigination>44106</ZipOrigination> 
          <ZipDestination>'.$zip.'</ZipDestination> 
          <Pounds>'.$pounds.'</Pounds> 
          <Container>NONRECTANGULAR</Container> 
          <Size>LARGE</Size> 
          <Width>15</Width> 
          <Length>30</Length> 
          <Height>15</Height> 
          <Girth>55</Girth> 
        </Package> 
    </RateV4Request>'); 
    
    uspsRateCalculator.php

    코드입니다

    어떻게 "요청합니까?" 그런 다음 어떻게 응답을 얻을 수 있습니까? 결국

    <?xml version="1.0" encoding="UTF-8"?> 
    <RateV4Response> 
        <Package ID="1ST"> 
          <ZipOrigination>44106</ZipOrigination> 
          <ZipDestination>20770</ZipDestination> 
          <Pounds>1</Pounds> 
          <Ounces>8</Ounces> 
          <Container>NONRECTANGULAR</Container> 
          <Size>LARGE</Size> 
          <Width>15</Width> 
          <Length>30</Length> 
          <Height>15</Height> 
          <Girth>55</Girth> 
          <Zone>3</Zone> 
          <Postage CLASSID="1"> 
           <MailService>Priority Mail&lt;sup&gt;&amp;reg;&lt;/sup&gt;</MailService> 
           <Rate>24.85</Rate> 
          </Postage> 
        </Package> 
    </RateV4Response> 
    

    나는 나의 checkout.php 페이지에서를 얻을 필요가있다.

    답변

    0

    아마도 cURL을 사용하고 싶을 것입니다.

    http://www.php.net/manual/en/function.curl-exec.php

    은 $ XML 변수는 (쿼리 적절한 USPS 서버/위치 서버/PATH를 교체 한 후) 조회하고자하는 URL을 생성하는 것 같다. 해당 URL을 링크 된 페이지의 cURL 예제에 표시된대로 전달하십시오.

    curl_exec에서 가져온 XML은 포함 된 응답 XML처럼 보입니다. 거기에서 PHP에는 원하는 정보를 추출하는 데 사용할 수있는 xml 판독기 클래스가 있습니다 (또는 '속도'를 잡고 싶다면 정규 표현식을 좀 더 가볍게 사용할 수 있습니다).

    편집 : 해당 문서 페이지에서 누락 된 경우 curl-exec에 "SUCCESS"가 아닌 내용을 반환하도록 CURLOPT_RETURNTRANSFER 플래그를 설정해야합니다.

    관련 문제