PHP 개발 실현 택배 조회 기능 상세 설명

6478 단어 PHP택배 조회
배경:얼마 전에 디자인 은 경 동 api 의 기능 을 실 현 했 습 니 다.다른 택 배 를 바 꾸 고 다시 디자인 하면 너무 많은 시간 을 낭비 하 는 것 이 아니 냐 는 것 을 발 견 했 습 니 다.그래서 제3자 가 제공 하 는 택배 API 를 선택 하 는 것 이 가장 합 리 적 입 니 다.다음은 택배 새 와 택배 100 의 디자인 을 보 여 드 리 겠 습 니 다.
택배 새
I.택배 새 api 물류 실시 간 조회 실현
1.먼저 하나의속달 새계 정 을 가지 고 상대방 의 요구 에 따라 사용자 의 신청 을 보완 해 야 한다.
2.자신의 요구 에 따라 서비스 개통

3.'나의 API 인터페이스'에 들 어가'인터페이스'의 개발 문서 에 따라 디자인 수 요 를 파악 하고 공식 demo 를 다운로드 하여 자신 에 게 맞 는 코드 로 편집 합 니 다.

II."실시 간 검색"코드 구현
1.공식 demo 코드 를 수정 하고 저 는 여기 서 택배 류 를 분리 하여 적용 성 을 높 였 습 니 다.

2.클래스 파일 도입,예화 및 테스트

(주의:이 api 를 참조 할 때 물류 번호 파라미터 외 에'택배 회사 코드'가 필요 하 다 는 것 을 명 확 히 알 수 있 습 니 다.다운 로드 를 클릭 하여 자신의 디자인 플랫폼 의 데이터 베 이 스 를 저장 할 수 있 습 니 다.한 가 지 를 발견 하면 엑셀 표 에 경 동 물류 가 없 지만'JD'를 사용 하여 찾 을 수 있 습 니 다.표 업데이트 가 실시 성 이 부족 할 것 같 습 니 다)
3.출력 효과

2.택배 100 디자인 실현
1.실례 화 작업 클래스,테스트 코드
include_once 'Express.php';
$waybillCode = 'VA33016759650';
$express = new Express();
$res = $express->expressinfo($waybillCode);
$trace = $res['data'];
var_dump($trace);
(메모:이곳 은 택배 번호 하나만 입력 하면 됩 니 다.앞의 택배 새 api 에 비해 더욱 스마트 합 니 다)
2.테스트 에서 얻 은 데이터

3.인터페이스 간단 한 디자인 효 과 는 다음 과 같 습 니 다.참고 만 하 십시오.

4.참고 코드 를 추가 하고 상용 물류 회사(2017-1-19)와 일치 합 니 다.
분명 한 것 은 얻 은 물류 정보 중의'come'과 택배 100 이 제공 하 는 인 코딩 에 따라 대응 해 야 한 다 는 것 이다.그리고 워드 문서 만 있 고 엑셀 표 가 있 으 면 데이터 베 이 스 를 입력 하 는 데 편리 하 다 는 것 을 발견 했다.
업 데 이 트 된 Express.class.php 코드 는 다음 과 같 습 니 다.

<?php
/**
 * Express.class.php       v1.0
 *
 * @copyright        
 * @lastmodify    2017-01-19
 */
class Express
{
  //              
  public function expressinfo($order){
    header('Content-Type:text/html; charset=utf-8');
    $result = $this -> getorder($order);
    $express = $this->traceExpress();
    foreach ($express as $key => $value){
      if ($result['com'] == $key){
        $result['comName'] = $value;
        break;
      }else{
        $result['comName'] = '    ';
      }
    }
    return $result;
  }

  //  100    
  public function traceExpress(){
    $express = array(
      'aae' => 'aae    ',
      'anjie' => '    ',
      'anxindakuaixi' => '     ',
      'biaojikuaidi' => '    ',
      'datianwuliu' => '    ',
      'debangwuliu' => '    ',
      'ems' => 'ems  ',
      'guotongkuaidi' => '    ',
      'huitongkuaidi' => '    ',
      'jixianda' => '   ',
      'kuaijiesudi' => '    ',
      'quanfengkuaidi' => '    ',
      'rufengda' => '   ',
      'shentong' => '  ',
      'shunfeng' => '  ',
      'tiantian' => '    ',
      'xinfengwuliu' => '    ',
      'yibangwuliu' => '    ',
      'yuantong' => '    ',
      'yunda' => '    ',
      'zhaijisong' => '   ',
      'zhongtong' => '    ',
      'jd' => '    '
    );
    return $express;
  }

  /*
   *         
  */
  private function getcontent($url)
  {
    if (function_exists("file_get_contents")) {
      $file_contents = file_get_contents($url);
    } else {
      $ch   = curl_init();
      $timeout = 5;
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
      $file_contents = curl_exec($ch);
      curl_close($ch);
    }
    return $file_contents;
  }

  /*
   *               
  */
  private function expressname($order)
  {
    $name  = json_decode($this->getcontent("http://www.kuaidi100.com/autonumber/auto?num={$order}"), true);
    $result = $name[0]['comCode'];
    if (empty($result)) {
      return false;
    } else {
      return $result;
    }
  }

  /*
   *   $data array             false
   * @param $order         
   * $data['ischeck'] ==1     
   * $data['data']              array
  */
  public function getorder($order)
  {
    $keywords = $this->expressname($order);
    if (!$keywords) {
      return false;
    } else {
      $result = $this->getcontent("http://www.kuaidi100.com/query?type={$keywords}&postid={$order}");
      $data  = json_decode($result, true);
      return $data;
    }
  }
}
부록 소스 코드>>
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기