最近看了一篇博文是说微信公众平台搭建,于是心血来潮自己也尝试了一下。

1.不用多讲了,申请微信公众号,对于个人来说,只能申请订阅号。

可以看这个链接的文章,http://jingyan.baidu.com/article/414eccf6011ff06b431f0aec.html

2.采用的是Sina App Engine来脱管服务,就要申请sae开发者权限。

再看这个链接http://jingyan.baidu.com/article/4f7d57129a60531a20192796.html

3.在sae上新建一个应用

我选择的PHP,PHP几乎免费。Java应用的话,有点小贵了。

虽然没有学过PHP,摸着石头过河吧。

将php代码上传后,就有一个可调试的url了,PHP代码后面上。

4.再在微信公众平台中的开发者中心(这个要经过一段时间的审核),填入一下内容即可

5.然后就是对接数据了,为了测试,我对接的是图灵机器人的数据、12306和百度地图API

12306是为了查余票和车次,百度地图API是为了查天气预报、图灵机器人见链接:http://www.tuling123.com/openapi/

php代码如下,本人不是搞PHP的,因此只能在网上拷贝了,如有复制,纯属巧合。

php
    

    define("TOKEN", "weixin");

    Session_start();

    Session_Register("kw");


    $wechatObj = new wechatCallbackapiTest();
    require_once("train.php");

    $tqTpl = "   %s  5   <![CDATA[%s]]>      <![CDATA[%s]]>      <![CDATA[%s]]>      <![CDATA[%s]]>      <![CDATA[%s]]>      <![CDATA[%s]]>       ";
    if (!isset($_GET['echostr'])) {
        $wechatObj->responseMsg();
    }else{
        $wechatObj->valid();
    }

    class wechatCallbackapiTest
    {
        //验证签名
        public function valid()
        {
            $echoStr = $_GET["echostr"];
            $signature = $_GET["signature"];
            $timestamp = $_GET["timestamp"];
            $nonce = $_GET["nonce"];
            $token = TOKEN;
            $tmpArr = array($token, $timestamp, $nonce);
            sort($tmpArr);
            $tmpStr = implode($tmpArr);
            $tmpStr = sha1($tmpStr);
            if($tmpStr == $signature){
                echo $echoStr;
                exit;
            }
        }

        //响应消息
        public function responseMsg()
        {
            $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
            if (!empty($postStr)){
                $this->logger("R ".$postStr);
                $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $RX_TYPE = trim($postObj->MsgType);
                 
                //消息类型分离
                switch ($RX_TYPE)
                {
                    case "event":
                        $result = $this->receiveEvent($postObj);
                        break;
                    case "text":
                        $result = $this->receiveTulingText($postObj);
                        break;
                    case "image":
                        $result = $this->receiveImage($postObj);
                        break;
                    case "location":
                        $result = $this->receiveLocation($postObj);
                        break;
                    case "voice":
                        $result = $this->receiveVoice($postObj);
                        break;
                    case "video":
                        $result = $this->receiveVideo($postObj);
                        break;
                    case "link":
                        $result = $this->receiveLink($postObj);
                        break;
                    default:
                        $result = "unknown msg type: ".$RX_TYPE;
                        break;
                }
                $this->logger("T ".$result);
                echo $result;
            }else {
                echo "";
                exit;
            }
        }

        //接收事件消息
        private function receiveEvent($object)
        {
            $content = "";
            switch ($object->Event)
            {
                case "subscribe":
                    $content = "欢迎关注TomSnail ";
                    $content .= (!empty($object->EventKey))?("\n来自二维码场景 ".str_replace("qrscene_","",$object->EventKey)):"";
                    break;
                case "unsubscribe":
                    $content = "取消关注";
                    break;
                case "SCAN":
                    $content = "扫描场景 ".$object->EventKey;
                    break;
                case "CLICK":
                    switch ($object->EventKey)
                    {
                        case "COMPANY":
                            $content = array();
                            $content[] = array("Title"=>"多图文1标题", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
                            break;
                        default:
                            $content = "点击菜单:".$object->EventKey;
                            break;
                    }
                    break;
                case "LOCATION":
                    $content = "上传位置:纬度 ".$object->Latitude.";经度 ".$object->Longitude;
                    break;
                case "VIEW":
                    $content = "跳转链接 ".$object->EventKey;
                    break;
                case "MASSSENDJOBFINISH":
                    $content = "消息ID:".$object->MsgID.",结果:".$object->Status.",粉丝数:".$object->TotalCount.",过滤:".$object->FilterCount.",发送成功:".$object->SentCount.",发送失败:".$object->ErrorCount;
                    break;
                default:
                    $content = "receive a new event: ".$object->Event;
                    break;
            }
            if(is_array($content)){
                if (isset($content[0])){
                    $result = $this->transmitNews($object, $content);
                }else if (isset($content['MusicUrl'])){
                    $result = $this->transmitMusic($object, $content);
                }
            }else{
                $result = $this->transmitText($object, $content);
            }

            return $result;
        }

        private function receiveTulingText($object){
            try{
                $keyword = trim($object->Content);
                $userid = trim($object->FromUserName);

                $apiKey = "*******************************"; 
                $apiURL = "http://www.tuling123.com/openapi/api?key=".$apiKey."&info=".$keyword."&userid=".userid;
                
                
               if((substr_count($keyword,'天气')!=0)||$_SESSION["kw"]=="天气"){  //百度地图API
                    if($keyword=="天气"){
                        $_SESSION["kw"]="天气";
                        $content = "请输入城市".$_SESSION["kw"];
                    }else{
                        $geshu = substr_count($keyword,'天气');    
                        if($geshu==0){
                            $city = $keyword;
                        }else{
                             $t = explode("天气",$keyword);         
                             for($i=0;$i<=$geshu;$i++)    
                                {     
                              if($t[$i]!='')     
                              {     
                            $city = $t[$i];     
                            break;     
                              }         
                             }   
                    }
                
                 $mykey ="*********************";   
                 $url = "http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=".$mykey;    
                 $output = file_get_contents($url);    
                 $contentStr = json_decode($output, true);        
                       
                 if($contentStr['status']=='success')    
                 {           
                    $T[0]['Title']=$contentStr['date']." ".$contentStr['results'][0]['currentCity']."天气"; 
                    $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; 
                    $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";     
                    if(is_array($contentStr['results'][0]['index']))     
                    {     
                        $T[2]['Title']="【pm2.5】".$contentStr['results'][0]['pm25']."\n"."【".$contentStr['results'][0]['index'][0]['title']."】"."(".$contentStr['results'][0]['index'][0]['zs'].") ".$contentStr['results'][0]['index'][0]['des'];     
                    //下一行是洗车指数,感觉不对主题还是不要的好。。     //$T[2]['Title']=$T[2]['Title']."\n"."【".$contentStr['results'][0]['index'][1]['title']."】(".$contentStr['results'][0]['index'][1]['zs'].")".$contentStr['results'][0]['index'][1]['des'];  
                        $T[2]['Title']=$T[2]['Title']."\n"."【".$contentStr['results'][0]['index'][2]['title']."】(".$contentStr['results'][0]['index'][2]['zs'].")".$contentStr['results'][0]['index'][2]['des'];     
                    }     
                    else    
                        $guowai=1;  
                    for($i=1,$aaa=0;$i<=5;$i++)     
                    {     
                        if($i==2 && $guowai!=1)      
                            continue;     
                        if($guowai==1 && $i==5)      
                            continue;     
                        $T[$i]['Title']=$contentStr['results'][0]['weather_data'][$aaa]['date']."".$contentStr['results'][0]['weather_data'][$aaa]['temperature']."".$contentStr['results'][0]['weather_data'][$aaa]['weather']." ".$contentStr['results'][0]['weather_data'][$aaa]['wind'];             
                        $T[$i]['PicUrl']=$contentStr['results'][0]['weather_data'][$aaa]['dayPictureUrl'];     
                        $T[$i]['Url']=$contentStr['results'][0]['weather_data'][$aaa]['dayPictureUrl'];     
                        $aaa++;     
                     }      
                     $content = $T;
                    
                 }     
                    }
                        
                    
                
               }else if(substr_count($keyword,'火车')!=0 && $keyword!='火车'){//12306
                    $geshu = substr_count($keyword,'火车:'); 
                    $k = str_replace('火车 ', "", $keyword);
                    $t = explode(" ",$k);
                    $startstaion = $t[0];
                    $endstation = $t[1];
                    $date =$t[2];
                    if($date==null){
                        $date = date("Y-m-d",time());
                    }
                    if(substr_count($date,'-')==0){
                       $date = date("Y-m",time())."-".$date;
                    }
                    $time =$t[3];
                    if($time==null){
                        $time = "00:00";
                    }
                    if(substr_count($time,':')==0){
                        $time = $time.":00";
                    }
                    
                    $data = gettrain($startstaion,$endstation,$date,$time);
                    $str="";
                    $T[0]['Title']=$startstaion."到".$endstation." ".$date." ".$time."以后10列火车信息"; 
                    $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; 
                    $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";     
                    $count = 1;
                    foreach($data as $key =>$value){
                        $str=$count." ";
                        $str.="火车列次:{$data[$key]['station_train_code']}\n";
                        $str.="始发站:{$data[$key]['start_station_name']},终点站:{$data[$key]['end_station_name']}\n";
                        $str.="出发时间:{$data[$key]['start_time']},到站时间:{$data[$key]['arrive_time']},历时:{$data[$key]['lishi']}\n";
                        $str.="一等座:{$data[$key]['zy_num']}\n二等座:{$data[$key]['ze_num']}\n硬座:{$data[$key]['yz_num']}\n硬卧:{$data[$key]['yw_num']}\n";
                         $str.="软卧:{$data[$key]['rw_num']}\n软座:{$data[$key]['rz_num']}\n特等座:{$data[$key]['tz_num']}\n无座:{$data[$key]['wz_num']}";
                        $count = $count+1;
                        $T[$count]['Title'] = $str;
                        // $T[$count]['Url']="http://kyfw.12306.cn/otn/leftTicket/queryTicketPrice?train_no=".$data[$key]["train_no"]."&from_station_no=".$data[$key]["from_station_no"]."&to_station_no=".$data[$key]["to_station_no"]."&seat_types=".$data[$key]["seat_types"]."&train_date=$date";
                        $T[$count]['Url'] = "https://kyfw.12306.cn/otn/login/init";
                        if($count==10){
                        break;}
                    }
                    $content =  $T;
               }else{//图灵机器人
                   
                     $file_contents = file_get_contents($apiURL);
                $file_contents = json_decode($file_contents,true);
                $code = $file_contents["code"];
                if($code==100000){
                    $content = $file_contents["text"];
                }else if($code==200000){
                    $T[0]['Title']=$file_contents["text"]; 
                    //$T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; 
                    $T[0]['Url']=$file_contents["url"];  
                     $content = $T;
                }else if($code==302000){
                       $T[0]['Title']=$file_contents["text"]; 
                    $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; 
                    $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";  
                    $data = $file_contents["list"];
                    $count = 1;
                    foreach($data as $key =>$value){
                            $T[$count]['Title']=$data[$key]["article"]; 
                            $T[$count]['PicUrl']=$data[$key]["icon"]; 
                            $T[$count]['Url']=$data[$key]["detailurl"];  
                            $count++;
                    }
                     $content = $T;
                }else if($code==305000){
                    $T[0]['Title']=$file_contents["text"]; 
                    $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; 
                    $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";  
                    $data = $file_contents["list"];
                    $count = 1;
                    foreach($data as $key =>$value){
                            $T[$count]['Title']="车次".$data[$key]["trainnum"]."\n起始站:".$data[$key]["start"]."\n到达站:".$data[$key]["terminal"]."\n开车时间:".$data[$key]["starttime"]."\n到达时间:".$data[$key]["endtime"]; 
                            $T[$count]['PicUrl']=$data[$key]["icon"]; 
                            $T[$count]['Url']=$data[$key]["detailurl"];  
                            $count++;
                        if($count==10){
                            break;
                        }
                    }
                     $content = $T;
                }else if($code==306000){
                   $T[0]['Title']=$file_contents["text"]; 
                    $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; 
                    $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";  
                    $data = $file_contents["list"];
                    $count = 1;
                    foreach($data as $key =>$value){
                        $T[$count]['Title']="航班号".$data[$key]["flight"]."航班路线".$data[$key]["route"]."\n起飞时间:".$data[$key]["starttime"]."\n到达时间:".$data[$key]["endtime"]."\n状态:".$data[$key]["state"]; 
                            $T[$count]['PicUrl']=$data[$key]["icon"]; 
                            $T[$count]['Url']=$data[$key]["detailurl"];  
                            $count++;
                    }
                     $content = $T;
                }else if($code==308000){
                    $T[0]['Title']=$file_contents["text"]; 
                    $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; 
                    $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";  
                    $data = $file_contents["list"];
                    $count = 1;
                    foreach($data as $key =>$value){
                        $T[$count]['Title']="名称".$data[$key]["name"]."详情".$data[$key]["info"]; 
                            $T[$count]['PicUrl']=$data[$key]["icon"]; 
                            $T[$count]['Url']=$data[$key]["detailurl"];  
                            $count++;
                    }
                     $content = $T;
                }else{
                    $content = $file_contents["text"];
                }
               }
                
                
              
                
                if(is_array($content)){
                    if (isset($content[0]['PicUrl'])){
                           
                        $result = $this->transmitNews($object, $content);
                    }else if (isset($content['MusicUrl'])){
                        $result = $this->transmitMusic($object, $content);
                    }
                }else{
                    $result = $this->transmitText($object, $content);
                }

            }catch(Exception $e){
                $content=$e->getMessage();
                $result = $this->transmitText($object, $content);
            }
            return $result;
            
        }


        //接收图片消息
        private function receiveImage($object)
        {
            $content = array("MediaId"=>$object->MediaId);
            $result = $this->transmitImage($object, $content);
            return $result;
        }

        //接收位置消息
        private function receiveLocation($object)
        {
            $content = "你发送的是位置,纬度为:".$object->Location_X.";经度为:".$object->Location_Y.";缩放级别为:".$object->Scale.";位置为:".$object->Label;
            $result = $this->transmitText($object, $content);
            return $result;
        }

        //接收语音消息
        private function receiveVoice($object)
        {
            if (isset($object->Recognition) && !empty($object->Recognition)){
                $content = "你刚才说的是:".$object->Recognition;
                $result = $this->transmitText($object, $content);
            }else{
                $content = array("MediaId"=>$object->MediaId);
                $result = $this->transmitVoice($object, $content);
            }

            return $result;
        }

        //接收视频消息
        private function receiveVideo($object)
        {
            $content = array("MediaId"=>$object->MediaId, "ThumbMediaId"=>$object->ThumbMediaId, "Title"=>"", "Description"=>"");
            $result = $this->transmitVideo($object, $content);
            return $result;
        }

        //接收链接消息
        private function receiveLink($object)
        {
            $content = "你发送的是链接,标题为:".$object->Title.";内容为:".$object->Description.";链接地址为:".$object->Url;
            $result = $this->transmitText($object, $content);
            return $result;
        }

        //回复文本消息
        private function transmitText($object, $content)
        {
            $xmlTpl = "
    
    
    %s
    
    
    ";
            $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content);
            return $result;
        }

        //回复图片消息
        private function transmitImage($object, $imageArray)
        {
            $itemTpl = "
        
    ";

            $item_str = sprintf($itemTpl, $imageArray['MediaId']);

            $xmlTpl = "
    
    
    %s
    
    $item_str
    ";

            $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
            return $result;
        }

        //回复语音消息
        private function transmitVoice($object, $voiceArray)
        {
            $itemTpl = "
        
    ";

            $item_str = sprintf($itemTpl, $voiceArray['MediaId']);

            $xmlTpl = "
    
    
    %s
    
    $item_str
    ";

            $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
            return $result;
        }

        //回复视频消息
        private function transmitVideo($object, $videoArray)
        {
            $itemTpl = "";

            $item_str = sprintf($itemTpl, $videoArray['MediaId'], $videoArray['ThumbMediaId'], $videoArray['Title'], $videoArray['Description']);

            $xmlTpl = "
    
    
    %s
    
    $item_str
    ";

            $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
            return $result;
        }

        //回复图文消息
        private function transmitNews($object, $newsArray)
        {
            if(!is_array($newsArray)){
                return;
            }
            $itemTpl = "    
            <![CDATA[%s]]>
            
            
            
        
    ";
            $item_str = "";
            foreach ($newsArray as $item){
                $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);
            }
            $xmlTpl = "
    
    
    %s
    
    %s
    
    $item_str
    ";

            $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray));
            return $result;
        }

        //回复音乐消息
        private function transmitMusic($object, $musicArray)
        {
            $itemTpl = "
        <![CDATA[%s]]>
        
        
        
    ";

            $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']);

            $xmlTpl = "
    
    
    %s
    
    $item_str
    ";

            $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
            return $result;
        }

        //回复多客服消息
        private function transmitService($object)
        {
            $xmlTpl = "
    
    
    %s
    
    ";
            $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
            return $result;
        }

        //日志记录
        private function logger($log_content)
        {
            if(isset($_SERVER['HTTP_APPNAME'])){   //SAE
                sae_set_display_errors(false);
                sae_debug($log_content);
                sae_set_display_errors(true);
            }else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL
                $max_size = 10000;
                $log_filename = "log.xml";
                if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
                file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND);
            }
        }
    }
    ?>
View Code
php
return array(
        "北京北" => "VAP",
        "北京东" => "BOP",
        "北京" => "BJP",
        "北京南" => "VNP",
        "北京西" => "BXP",
        "重庆北" => "CUW",
        "重庆" => "CQW",
        "重庆南" => "CRW",
        "长春" => "CCT",
        "长春南" => "CET",
        "长春西" => "CRT",
        "成都东" => "ICW",
        "成都南" => "CNW",
        "成都" => "CDW",
        "长沙" => "CSQ",
        "长沙南" => "CWQ",
        "阿尔山" => "ART",
        "安康" => "AKY",
        "阿克苏" => "ASR",
        "阿里河" => "AHX",
        "阿拉山口" => "AKR",
        "安平" => "APT",
        "安庆" => "AQH",
        "安顺" => "ASW",
        "鞍山" => "AST",
        "安阳" => "AYF",
        "北安" => "BAB",
        "蚌埠" => "BBH",
        "白城" => "BCT",
        "北海" => "BHZ",
        "白河" => "BEL",
        "白涧" => "BAP",
        "宝鸡" => "BJY",
        "滨江" => "BJB",
        "博克图" => "BKX",
        "百色" => "BIZ",
        "白山市" => "HJL",
        "北台" => "BTT",
        "包头东" => "BDC",
        "包头" => "BTC",
        "北屯市" => "BXR",
        "本溪" => "BXT",
        "白云鄂博" => "BEC",
        "白银西" => "BXJ",
        "亳州" => "BZH",
        "赤壁" => "CBN",
        "常德" => "VGQ",
        "承德" => "CDP",
        "长甸" => "CDT",
        "赤峰" => "CFD",
        "茶陵" => "CDG",
        "苍南" => "CEH",
        "昌平" => "CPP",
        "崇仁" => "CRG",
        "昌图" => "CTT",
        "长汀镇" => "CDB",
        "崇信" => "CIJ",
        "曹县" => "CXK",
        "楚雄" => "COM",
        "陈相屯" => "CXT",
        "长治北" => "CBF",
        "长征" => "CZJ",
        "池州" => "IYH",
        "常州" => "CZH",
        "郴州" => "CZQ",
        "长治" => "CZF",
        "沧州" => "COP",
        "崇左" => "CZZ",
        "大安北" => "RNT",
        "大成" => "DCT",
        "丹东" => "DUT",
        "东方红" => "DFB",
        "东莞东" => "DMQ",
        "大虎山" => "DHD",
        "敦煌" => "DHJ",
        "敦化" => "DHL",
        "德惠" => "DHT",
        "东京城" => "DJB",
        "大涧" => "DFP",
        "都江堰" => "DDW",
        "大连北" => "DFT",
        "大理" => "DKM",
        "大连" => "DLT",
        "定南" => "DNG",
        "大庆" => "DZX",
        "东胜" => "DOC",
        "大石桥" => "DQT",
        "大同" => "DTV",
        "东营" => "DPK",
        "大杨树" => "DUX",
        "都匀" => "RYW",
        "邓州" => "DOF",
        "达州" => "RXW",
        "德州" => "DZP",
        "额济纳" => "EJC",
        "二连" => "RLC",
        "恩施" => "ESN",
        "昂昂溪" => "AAX",
        "阿城" => "ACB",
        "安达" => "ADX",
        "安定" => "ADP",
        "安广" => "AGT",
        "艾河" => "AHP",
        "安化" => "PKQ",
        "艾家村" => "AJJ",
        "鳌江" => "ARH",
        "安家" => "AJB",
        "阿金" => "AJD",
        "阿克陶" => "AER",
        "安口窑" => "AYY",
        "敖力布告" => "ALD",
        "安龙" => "AUZ",
        "阿龙山" => "ASX",
        "安陆" => "ALN",
        "阿木尔" => "JTX",
        "阿南庄" => "AZM",
        "安庆西" => "APH",
        "鞍山西" => "AXT",
        "安塘" => "ATV",
        "安亭北" => "ASH",
        "阿图什" => "ATR",
        "安图" => "ATL",
        "安溪" => "AXS",
        "博鳌" => "BWQ",
        "白壁关" => "BGV",
        "蚌埠南" => "BMH",
        "巴楚" => "BCR",
        "板城" => "BUP",
        "北戴河" => "BEP",
        "保定" => "BDP",
        "宝坻" => "BPP",
        "八达岭" => "ILP",
        "巴东" => "BNN",
        "柏果" => "BGM",
        "布海" => "BUT",
        "白河东" => "BIY",
        "贲红" => "BVC",
        "宝华山" => "BWH",
        "白河县" => "BEY",
        "白芨沟" => "BJJ",
        "碧鸡关" => "BJM",
        "北滘" => "IBQ",
        "碧江" => "BLQ",
        "白鸡坡" => "BBM",
        "笔架山" => "BSB",
        "八角台" => "BTD",
        "保康" => "BKD",
        "白奎堡" => "BKB",
        "白狼" => "BAT",
        "百浪" => "BRZ",
        "博乐" => "BOR",
        "宝拉格" => "BQC",
        "巴林" => "BLX",
        "宝林" => "BNB",
        "北流" => "BOZ",
        "勃利" => "BLB",
        "布列开" => "BLR",
        "宝龙山" => "BND",
        "八面城" => "BMD",
        "班猫箐" => "BNM",
        "八面通" => "BMB",
        "北马圈子" => "BRP",
        "北票南" => "RPD",
        "白旗" => "BQP",
        "宝泉岭" => "BQB",
        "白泉" => "BQL",
        "白沙" => "BSW",
        "巴山" => "BAY",
        "白水江" => "BSY",
        "白沙坡" => "BPM",
        "白石山" => "BAL",
        "白水镇" => "BUM",
        "坂田" => "BTQ",
        "泊头" => "BZP",
        "北屯" => "BYP",
        "本溪湖" => "BHT",
        "博兴" => "BXK",
        "八仙筒" => "VXD",
        "白音察干" => "BYC",
        "背荫河" => "BYB",
        "北营" => "BIV",
        "巴彦高勒" => "BAC",
        "白音他拉" => "BID",
        "鲅鱼圈" => "BYT",
        "白银市" => "BNJ",
        "白音胡硕" => "BCD",
        "巴中" => "IEW",
        "霸州" => "RMP",
        "北宅" => "BVP",
        "赤壁北" => "CIN",
        "查布嘎" => "CBC",
        "长城" => "CEJ",
        "长冲" => "CCM",
        "承德东" => "CCP",
        "赤峰西" => "CID",
        "嵯岗" => "CAX",
        "柴岗" => "CGT",
        "长葛" => "CEF",
        "柴沟堡" => "CGV",
        "城固" => "CGY",
        "陈官营" => "CAJ",
        "成高子" => "CZB",
        "草海" => "WBW",
        "柴河" => "CHB",
        "册亨" => "CHZ",
        "草河口" => "CKT",
        "崔黄口" => "CHP",
        "巢湖" => "CIH",
        "蔡家沟" => "CJT",
        "成吉思汗" => "CJX",
        "岔江" => "CAM",
        "蔡家坡" => "CJY",
        "沧口" => "CKK",
        "昌乐" => "CLK",
        "超梁沟" => "CYP",
        "慈利" => "CUQ",
        "昌黎" => "CLP",
        "长岭子" => "CLT",
        "晨明" => "CMB",
        "长农" => "CNJ",
        "昌平北" => "VBP",
        "长坡岭" => "CPM",
        "辰清" => "CQB",
        "楚山" => "CSB",
        "长寿" => "EFW",
        "磁山" => "CSP",
        "苍石" => "CST",
        "草市" => "CSL",
        "察素齐" => "CSC",
        "长山屯" => "CVT",
        "长汀" => "CES",
        "昌图西" => "CPT",
        "春湾" => "CQQ",
        "磁县" => "CIP",
        "岑溪" => "CNZ",
        "辰溪" => "CXQ",
        "磁西" => "CRP",
        "长兴南" => "CFH",
        "磁窑" => "CYK",
        "朝阳" => "CYD",
        "春阳" => "CAL",
        "城阳" => "CEK",
        "创业村" => "CEX",
        "朝阳川" => "CYL",
        "朝阳地" => "CDD",
        "长垣" => "CYF",
        "朝阳镇" => "CZL",
        "滁州北" => "CUH",
        "常州北" => "ESH",
        "滁州" => "CXH",
        "潮州" => "CKQ",
        "常庄" => "CVK",
        "曹子里" => "CFP",
        "车转湾" => "CWM",
        "郴州西" => "ICQ",
        "沧州西" => "CBP",
        "德安" => "DAG",
        "大安" => "RAT",
        "东安" => "DAZ",
        "大坝" => "DBJ",
        "大板" => "DBC",
        "大巴" => "DBD",
        "到保" => "RBT",
        "定边" => "DYJ",
        "东边井" => "DBB",
        "德伯斯" => "RDT",
        "打柴沟" => "DGJ",
        "德昌" => "DVW",
        "滴道" => "DDB",
        "大德" => "DEM",
        "大磴沟" => "DKJ",
        "刀尔登" => "DRD",
        "得耳布尔" => "DRX",
        "东方" => "UFQ",
        "丹凤" => "DGY",
        "东丰" => "DIL",
        "都格" => "DMM",
        "大官屯" => "DTT",
        "大关" => "RGW",
        "东光" => "DGP",
        "东莞" => "DAQ",
        "东海" => "DHB",
        "大灰厂" => "DHP",
        "大红旗" => "DQD",
        "东海县" => "DQH",
        "德惠西" => "DXT",
        "达家沟" => "DJT",
        "东津" => "DKB",
        "杜家" => "DJL",
        "大旧庄" => "DJM",
        "大口屯" => "DKP",
        "东来" => "RVD",
        "德令哈" => "DHO",
        "大陆号" => "DLC",
        "带岭" => "DLB",
        "大林" => "DLD",
        "达拉特旗" => "DIC",
        "独立屯" => "DTX",
        "豆罗" => "DLV",
        "达拉特西" => "DNC",
        "东明村" => "DMD",
        "洞庙河" => "DEP",
        "东明县" => "DNF",
        "大拟" => "DNZ",
        "大平房" => "DPD",
        "大盘石" => "RPP",
        "大埔" => "DPI",
        "大堡" => "DVT",
        "大其拉哈" => "DQX",
        "道清" => "DML",
        "对青山" => "DQB",
        "德清西" => "MOH",
        "东升" => "DRQ",
        "独山" => "RWW",
        "砀山" => "DKH",
        "登沙河" => "DWT",
        "读书铺" => "DPM",
        "大石头" => "DSL",
        "大石寨" => "RZT",
        "东台" => "DBH",
        "定陶" => "DQK",
        "灯塔" => "DGT",
        "大田边" => "DBM",
        "东通化" => "DTL",
        "丹徒" => "RUH",
        "大屯" => "DNT",
        "东湾" => "DRJ",
        "大武口" => "DFJ",
        "低窝铺" => "DWJ",
        "大王滩" => "DZZ",
        "大湾子" => "DFM",
        "大兴沟" => "DXL",
        "大兴" => "DXX",
        "定西" => "DSJ",
        "甸心" => "DXM",
        "东乡" => "DXG",
        "代县" => "DKV",
        "定襄" => "DXV",
        "东戌" => "RXP",
        "东辛庄" => "DXD",
        "丹阳" => "DYH",
        "大雁" => "DYX",
        "德阳" => "DYW",
        "当阳" => "DYN",
        "丹阳北" => "EXH",
        "大英东" => "IAW",
        "东淤地" => "DBV",
        "大营" => "DYV",
        "定远" => "EWH",
        "岱岳" => "RYV",
        "大元" => "DYZ",
        "大营镇" => "DJP",
        "大营子" => "DZD",
        "大战场" => "DTJ",
        "德州东" => "DIP",
        "低庄" => "DVQ",
        "东镇" => "DNV",
        "道州" => "DFZ",
        "东至" => "DCH",
        "东庄" => "DZV",
        "兑镇" => "DWV",
        "豆庄" => "ROP",
        "定州" => "DXP",
        "大竹园" => "DZY",
        "大杖子" => "DAP",
        "豆张庄" => "RZP",
        "峨边" => "EBW",
        "二道沟门" => "RDP",
        "二道湾" => "RDX",
        "二龙" => "RLD",
        "二龙山屯" => "ELA",
        "峨眉" => "EMW",
        "二密河" => "RML",
        "二营" => "RYJ",
        "鄂州" => "ECN",
        "安阳东" => "ADF",
        "保定东" => "BMP",
        "长阳" => "CYN",
        "东二道河" => "DRB",
        "大苴" => "DIM",
        "大青沟" => "DSD",
        "定州东" => "DOP",
        "福州" => "FZS",
        "福州南" => "FYS",
        "贵阳" => "GIW",
        "广州北" => "GBQ",
        "广州东" => "GGQ",
        "广州" => "GZQ",
        "广州南" => "IZQ",
        "哈尔滨" => "HBB",
        "哈尔滨东" => "VBB",
        "哈尔滨西" => "VAB",
        "合肥" => "HFH",
        "合肥西" => "HTH",
        "呼和浩特东" => "NDC",
        "呼和浩特" => "HHC",
        "海口东" => "HMQ",
        "海口" => "VUQ",
        "杭州" => "HZH",
        "杭州南" => "XHH",
        "济南" => "JNK",
        "济南东" => "JAK",
        "济南西" => "JGK",
        "防城港" => "FEZ",
        "福鼎" => "FES",
        "风陵渡" => "FLV",
        "涪陵" => "FLW",
        "富拉尔基" => "FRX",
        "抚顺北" => "FET",
        "佛山" => "FSQ",
        "阜新" => "FXD",
        "阜阳" => "FYH",
        "格尔木" => "GRO",
        "广汉" => "GHW",
        "古交" => "GJV",
        "桂林北" => "GBZ",
        "古莲" => "GRX",
        "桂林" => "GLZ",
        "固始" => "GXN",
        "广水" => "GSN",
        "干塘" => "GNJ",
        "广元" => "GYW",
        "赣州" => "GZG",
        "公主岭" => "GLT",
        "公主岭南" => "GBT",
        "淮安" => "AUH",
        "鹤北" => "HMB",
        "淮北" => "HRH",
        "淮滨" => "HVN",
        "河边" => "HBV",
        "潢川" => "KCN",
        "韩城" => "HCY",
        "邯郸" => "HDP",
        "横道河子" => "HDB",
        "鹤岗" => "HGB",
        "皇姑屯" => "HTT",
        "红果" => "HEM",
        "黑河" => "HJB",
        "怀化" => "HHQ",
        "汉口" => "HKN",
        "葫芦岛" => "HLD",
        "海拉尔" => "HRX",
        "霍林郭勒" => "HWD",
        "海伦" => "HLB",
        "侯马" => "HMV",
        "哈密" => "HMR",
        "淮南" => "HAH",
        "桦南" => "HNB",
        "海宁西" => "EUH",
        "鹤庆" => "HQM",
        "怀柔北" => "HBP",
        "怀柔" => "HRP",
        "黄石东" => "OSN",
        "华山" => "HSY",
        "黄石" => "HSN",
        "黄山" => "HKH",
        "衡水" => "HSP",
        "衡阳" => "HYQ",
        "菏泽" => "HIK",
        "贺州" => "HXZ",
        "汉中" => "HOY",
        "惠州" => "HCQ",
        "吉安" => "VAG",
        "集安" => "JAL",
        "江边村" => "JBG",
        "晋城" => "JCF",
        "金城江" => "JJZ",
        "景德镇" => "JCG",
        "嘉峰" => "JFF",
        "加格达奇" => "JGX",
        "井冈山" => "JGG",
        "蛟河" => "JHL",
        "金华南" => "RNH",
        "金华西" => "JBH",
        "九江" => "JJG",
        "吉林" => "JLL",
        "荆门" => "JMN",
        "佳木斯" => "JMB",
        "济宁" => "JIK",
        "集宁南" => "JAC",
        "酒泉" => "JQJ",
        "江山" => "JUH",
        "吉首" => "JIQ",
        "九台" => "JTL",
        "镜铁山" => "JVJ",
        "鸡西" => "JXB",
        "蓟县" => "JKP",
        "绩溪县" => "JRH",
        "嘉峪关" => "JGJ",
        "江油" => "JFW",
        "锦州" => "JZD",
        "金州" => "JZT",
        "福安" => "FAS",
        "防城" => "FAZ",
        "丰城" => "FCG",
        "丰城南" => "FNG",
        "肥东" => "FIH",
        "发耳" => "FEM",
        "富海" => "FHX",
        "福海" => "FHR",
        "凤凰城" => "FHT",
        "奉化" => "FHH",
        "富锦" => "FIB",
        "范家屯" => "FTT",
        "福利屯" => "FTB",
        "丰乐镇" => "FZB",
        "阜南" => "FNH",
        "阜宁" => "AKH",
        "抚宁" => "FNP",
        "福清" => "FQS",
        "福泉" => "VMW",
        "丰水村" => "FSJ",
        "丰顺" => "FUQ",
        "繁峙" => "FSV",
        "抚顺" => "FST",
        "福山口" => "FKP",
        "扶绥" => "FSZ",
        "冯屯" => "FTX",
        "浮图峪" => "FYP",
        "富县东" => "FDY",
        "凤县" => "FXY",
        "富县" => "FEY",
        "费县" => "FXK",
        "凤阳" => "FUH",
        "汾阳" => "FAV",
        "扶余北" => "FBT",
        "分宜" => "FYG",
        "富源" => "FYM",
        "扶余" => "FYT",
        "富裕" => "FYX",
        "抚州北" => "FBG",
        "凤州" => "FZY",
        "丰镇" => "FZC",
        "范镇" => "VZK",
        "固安" => "GFP",
        "广安" => "VJW",
        "高碑店" => "GBP",
        "沟帮子" => "GBD",
        "甘草店" => "GDJ",
        "谷城" => "GCN",
        "藁城" => "GEP",
        "高村" => "GCV",
        "古城镇" => "GZB",
        "广德" => "GRH",
        "贵定" => "GTW",
        "贵定南" => "IDW",
        "古东" => "GDV",
        "贵港" => "GGZ",
        "官高" => "GVP",
        "葛根庙" => "GGT",
        "干沟" => "GGL",
        "甘谷" => "GGJ",
        "高各庄" => "GGP",
        "甘河" => "GAX",
        "根河" => "GEX",
        "郭家店" => "GDT",
        "孤家子" => "GKT",
        "高老" => "GOB",
        "古浪" => "GLJ",
        "皋兰" => "GEJ",
        "高楼房" => "GFM",
        "归流河" => "GHT",
        "关林" => "GLF",
        "甘洛" => "VOW",
        "郭磊庄" => "GLP",
        "高密" => "GMK",
        "公庙子" => "GMC",
        "工农湖" => "GRT",
        "广宁寺" => "GNT",
        "广南卫" => "GNM",
        "高平" => "GPF",
        "甘泉北" => "GEY",
        "共青城" => "GAG",
        "甘旗卡" => "GQD",
        "甘泉" => "GQY",
        "高桥镇" => "GZD",
        "赶水" => "GSW",
        "灌水" => "GST",
        "孤山口" => "GSP",
        "果松" => "GSL",
        "高山子" => "GSD",
        "嘎什甸子" => "GXD",
        "高台" => "GTJ",
        "高滩" => "GAY",
        "古田" => "GTS",
        "官厅" => "GTP",
        "广通" => "GOM",
        "官厅西" => "KEP",
        "贵溪" => "GXG",
        "涡阳" => "GYH",
        "巩义" => "GXF",
        "高邑" => "GIP",
        "巩义南" => "GYF",
        "固原" => "GUJ",
        "菇园" => "GYL",
        "公营子" => "GYD",
        "光泽" => "GZS",
        "古镇" => "GNQ",
        "瓜州" => "GZJ",
        "高州" => "GSQ",
        "固镇" => "GEH",
        "盖州" => "GXT",
        "官字井" => "GOT",
        "革镇堡" => "GZT",
        "冠豸山" => "GSS",
        "盖州西" => "GAT",
        "红安" => "HWN",
        "淮安南" => "AMH",
        "红安西" => "VXN",
        "海安县" => "HIH",
        "黄柏" => "HBL",
        "海北" => "HEB",
        "鹤壁" => "HAF",
        "华城" => "VCQ",
        "合川" => "WKW",
        "河唇" => "HCZ",
        "汉川" => "HCN",
        "海城" => "HCT",
        "黑冲滩" => "HCJ",
        "黄村" => "HCP",
        "海城西" => "HXT",
        "化德" => "HGC",
        "洪洞" => "HDV",
        "横峰" => "HFG",
        "韩府湾" => "HXJ",
        "汉沽" => "HGP",
        "黄瓜园" => "HYM",
        "红光镇" => "IGW",
        "浑河" => "HHT",
        "红花沟" => "VHD",
        "黄花筒" => "HUD",
        "贺家店" => "HJJ",
        "和静" => "HJR",
        "红江" => "HFM",
        "黑井" => "HIM",
        "获嘉" => "HJF",
        "河津" => "HJV",
        "涵江" => "HJS",
        "华家" => "HJT",
        "河间西" => "HXP",
        "花家庄" => "HJM",
        "河口南" => "HKJ",
        "黄口" => "KOH",
        "湖口" => "HKG",
        "呼兰" => "HUB",
        "葫芦岛北" => "HPD",
        "浩良河" => "HHB",
        "哈拉海" => "HIT",
        "鹤立" => "HOB",
        "桦林" => "HIB",
        "黄陵" => "ULY",
        "海林" => "HRB",
        "虎林" => "VLB",
        "寒岭" => "HAT",
        "和龙" => "HLL",
        "海龙" => "HIL",
        "哈拉苏" => "HAX",
        "呼鲁斯太" => "VTJ",
        "火连寨" => "HLT",
        "黄梅" => "VEH",
        "蛤蟆塘" => "HMT",
        "韩麻营" => "HYP",
        "黄泥河" => "HHL",
        "海宁" => "HNH",
        "惠农" => "HMJ",
        "和平" => "VAQ",
        "花棚子" => "HZM",
        "花桥" => "VQH",
        "宏庆" => "HEY",
        "怀仁" => "HRV",
        "华容" => "HRN",
        "华山北" => "HDY",
        "黄松甸" => "HDL",
        "和什托洛盖" => "VSR",
        "红山" => "VSB",
        "汉寿" => "VSQ",
        "衡山" => "HSQ",
        "黑水" => "HOT",
        "惠山" => "VCH",
        "虎什哈" => "HHP",
        "红寺堡" => "HSJ",
        "虎石台" => "HUT",
        "海石湾" => "HSO",
        "衡山西" => "HEQ",
        "红砂岘" => "VSJ",
        "黑台" => "HQB",
        "桓台" => "VTK",
        "和田" => "VTR",
        "会同" => "VTQ",
        "海坨子" => "HZT",
        "黑旺" => "HWK",
        "海湾" => "RWH",
        "红星" => "VXB",
        "徽县" => "HYY",
        "红兴隆" => "VHB",
        "换新天" => "VTB",
        "红岘台" => "HTJ",
        "红彦" => "VIX",
        "合阳" => "HAY",
        "海阳" => "HYK",
        "衡阳东" => "HVQ",
        "华蓥" => "HUW",
        "汉阴" => "HQY",
        "黄羊滩" => "HGJ",
        "汉源" => "WHW",
        "湟源" => "HNO",
        "河源" => "VIQ",
        "花园" => "HUN",
        "黄羊镇" => "HYJ",
        "化州" => "HZZ",
        "黄州" => "VON",
        "霍州" => "HZV",
        "惠州西" => "VXQ",
        "巨宝" => "JRT",
        "靖边" => "JIY",
        "金宝屯" => "JBD",
        "晋城北" => "JEF",
        "金昌" => "JCJ",
        "鄄城" => "JCK",
        "交城" => "JNV",
        "建昌" => "JFD",
        "峻德" => "JDB",
        "井店" => "JFP",
        "鸡东" => "JOB",
        "江都" => "UDH",
        "鸡冠山" => "JST",
        "金沟屯" => "VGP",
        "静海" => "JHP",
        "金河" => "JHX",
        "锦河" => "JHB",
        "锦和" => "JHQ",
        "精河" => "JHR",
        "精河南" => "JIR",
        "江华" => "JHZ",
        "建湖" => "AJH",
        "纪家沟" => "VJD",
        "晋江" => "JJS",
        "江津" => "JJW",
        "姜家" => "JJB",
        "金坑" => "JKT",
        "芨岭" => "JLJ",
        "金马村" => "JMM",
        "角美" => "JES",
        "江门" => "JWQ",
        "莒南" => "JOK",
        "井南" => "JNP",
        "建瓯" => "JVS",
        "经棚" => "JPC",
        "江桥" => "JQX",
        "九三" => "SSX",
        "金山北" => "EGH",
        "京山" => "JCN",
        "建始" => "JRN",
        "嘉善" => "JSH",
        "稷山" => "JVV",
        "吉舒" => "JSL",
        "建设" => "JET",
        "甲山" => "JOP",
        "建三江" => "JIB",
        "嘉善南" => "EAH",
        "金山屯" => "JTB",
        "江所田" => "JOM",
        "景泰" => "JTJ",
        "吉文" => "JWX",
        "进贤" => "JUG",
        "莒县" => "JKK",
        "嘉祥" => "JUK",
        "介休" => "JXV",
        "井陉" => "JJP",
        "嘉兴" => "JXH",
        "嘉兴南" => "EPH",
        "夹心子" => "JXT",
        "简阳" => "JYW",
        "揭阳" => "JRQ",
        "建阳" => "JYS",
        "姜堰" => "UEH",
        "巨野" => "JYK",
        "江永" => "JYZ",
        "靖远" => "JYJ",
        "缙云" => "JYH",
        "江源" => "SZL",
        "济源" => "JYF",
        "靖远西" => "JXJ",
        "胶州北" => "JZK",
        "焦作东" => "WEF",
        "靖州" => "JEQ",
        "荆州" => "JBN",
        "金寨" => "JZH",
        "晋州" => "JXP",
        "胶州" => "JXK",
        "锦州南" => "JOD",
        "焦作" => "JOF",
        "旧庄窝" => "JVP",
        "金杖子" => "JYD",
        "富川" => "FDZ",
        "抚远" => "FYB",
        "高碑店东" => "GMP",
        "革居" => "GEM",
        "光明城" => "IMQ",
        "高邑西" => "GNP",
        "鹤壁东" => "HFF",
        "寒葱沟" => "HKB",
        "邯郸东" => "HPP",
        "合肥北城" => "COH",
        "洪河" => "HPB",
        "虎门" => "IUQ",
        "哈密南" => "HLR",
        "淮南东" => "HOH",
        "建水" => "JSM",
        "昆明" => "KMM",
        "昆明西" => "KXM",
        "拉萨" => "LSO",
        "兰州东" => "LVJ",
        "兰州" => "LZJ",
        "兰州西" => "LAJ",
        "南昌" => "NCG",
        "南京" => "NJH",
        "南京南" => "NKH",
        "南宁" => "NNZ",
        "库尔勒" => "KLR",
        "开封" => "KFF",
        "岢岚" => "KLV",
        "凯里" => "KLW",
        "喀什" => "KSR",
        "昆山南" => "KNH",
        "奎屯" => "KTR",
        "开原" => "KYT",
        "六安" => "UAH",
        "灵宝" => "LBF",
        "芦潮港" => "UCH",
        "隆昌" => "LCW",
        "陆川" => "LKZ",
        "利川" => "LCN",
        "临川" => "LCG",
        "潞城" => "UTP",
        "鹿道" => "LDL",
        "娄底" => "LDQ",
        "临汾" => "LFV",
        "良各庄" => "LGP",
        "临河" => "LHC",
        "漯河" => "LON",
        "绿化" => "LWJ",
        "隆化" => "UHP",
        "丽江" => "LHM",
        "临江" => "LQL",
        "龙井" => "LJL",
        "吕梁" => "LHV",
        "醴陵" => "LLG",
        "柳林南" => "LKV",
        "滦平" => "UPP",
        "六盘水" => "UMW",
        "灵丘" => "LVV",
        "旅顺" => "LST",
        "陇西" => "LXJ",
        "澧县" => "LEQ",
        "兰溪" => "LWH",
        "临西" => "UEP",
        "耒阳" => "LYQ",
        "洛阳" => "LYF",
        "龙岩" => "LYS",
        "洛阳东" => "LDF",
        "连云港东" => "UKH",
        "临沂" => "LVK",
        "洛阳龙门" => "LLF",
        "柳园" => "DHR",
        "凌源" => "LYD",
        "辽源" => "LYL",
        "立志" => "LZX",
        "柳州" => "LZZ",
        "辽中" => "LZD",
        "麻城" => "MCN",
        "免渡河" => "MDX",
        "牡丹江" => "MDB",
        "莫尔道嘎" => "MRX",
        "满归" => "MHX",
        "明光" => "MGH",
        "漠河" => "MVX",
        "梅江" => "MKQ",
        "茂名东" => "MDQ",
        "茂名" => "MMZ",
        "密山" => "MSB",
        "马三家" => "MJT",
        "麻尾" => "VAW",
        "绵阳" => "MYW",
        "梅州" => "MOQ",
        "满洲里" => "MLX",
        "宁波东" => "NVH",
        "南岔" => "NCB",
        "南充" => "NCW",
        "南丹" => "NDZ",
        "南大庙" => "NMP",
        "南芬" => "NFT",
        "讷河" => "NHX",
        "嫩江" => "NGX",
        "内江" => "NJW",
        "南平" => "NPS",
        "南通" => "NUH",
        "南阳" => "NFF",
        "碾子山" => "NZX",
        "开安" => "KAT",
        "库车" => "KCR",
        "康城" => "KCP",
        "库都尔" => "KDX",
        "宽甸" => "KDT",
        "克东" => "KOB",
        "开江" => "KAW",
        "康金井" => "KJB",
        "喀喇其" => "KQX",
        "开鲁" => "KLC",
        "克拉玛依" => "KHR",
        "口前" => "KQL",
        "奎山" => "KAB",
        "昆山" => "KSH",
        "克山" => "KSB",
        "开通" => "KTT",
        "康熙岭" => "KXZ",
        "克一河" => "KHX",
        "开原西" => "KXT",
        "康庄" => "KZP",
        "来宾" => "UBZ",
        "老边" => "LLT",
        "灵宝西" => "LPF",
        "龙川" => "LUQ",
        "乐昌" => "LCQ",
        "黎城" => "UCP",
        "聊城" => "UCK",
        "蓝村" => "LCK",
        "林东" => "LRC",
        "乐都" => "LDO",
        "梁底下" => "LDP",
        "六道河子" => "LVP",
        "鲁番" => "LVM",
        "廊坊" => "LJP",
        "落垡" => "LOP",
        "廊坊北" => "LFP",
        "禄丰" => "LFM",
        "老府" => "UFD",
        "兰岗" => "LNB",
        "龙骨甸" => "LGM",
        "芦沟" => "LOM",
        "龙沟" => "LGJ",
        "拉古" => "LGB",
        "临海" => "UFH",
        "林海" => "LXX",
        "拉哈" => "LHX",
        "凌海" => "JID",
        "柳河" => "LNL",
        "六合" => "KLH",
        "龙华" => "LHP",
        "滦河沿" => "UNP",
        "六合镇" => "LEX",
        "亮甲店" => "LRT",
        "刘家店" => "UDT",
        "刘家河" => "LVT",
        "连江" => "LKS",
        "李家" => "LJB",
        "罗江" => "LJW",
        "廉江" => "LJZ",
        "庐江" => "UJH",
        "两家" => "UJT",
        "龙江" => "LJX",
        "龙嘉" => "UJL",
        "莲江口" => "LHB",
        "蔺家楼" => "ULK",
        "李家坪" => "LIJ",
        "兰考" => "LKF",
        "林口" => "LKB",
        "路口铺" => "LKQ",
        "老莱" => "LAX",
        "拉林" => "LAB",
        "陆良" => "LRM",
        "龙里" => "LLW",
        "零陵" => "UWZ",
        "临澧" => "LWQ",
        "兰棱" => "LLB",
        "卢龙" => "UAP",
        "喇嘛甸" => "LMX",
        "里木店" => "LMB",
        "洛门" => "LMJ",
        "龙南" => "UNG",
        "梁平" => "UQW",
        "罗平" => "LPM",
        "落坡岭" => "LPP",
        "六盘山" => "UPJ",
        "乐平市" => "LPG",
        "临清" => "UQK",
        "龙泉寺" => "UQJ",
        "乐善村" => "LUM",
        "冷水江东" => "UDQ",
        "连山关" => "LGT",
        "流水沟" => "USP",
        "陵水" => "LIQ",
        "乐山" => "UTW",
        "罗山" => "LRN",
        "鲁山" => "LAF",
        "丽水" => "USH",
        "梁山" => "LMK",
        "灵石" => "LSV",
        "露水河" => "LUL",
        "庐山" => "LSG",
        "林盛堡" => "LBT",
        "柳树屯" => "LSD",
        "梨树镇" => "LSB",
        "龙山镇" => "LAS",
        "李石寨" => "LET",
        "黎塘" => "LTZ",
        "轮台" => "LAR",
        "芦台" => "LTP",
        "龙塘坝" => "LBM",
        "濑湍" => "LVZ",
        "骆驼巷" => "LTJ",
        "李旺" => "VLJ",
        "莱芜东" => "LWK",
        "狼尾山" => "LRJ",
        "灵武" => "LNJ",
        "莱芜西" => "UXK",
        "朗乡" => "LXB",
        "陇县" => "LXY",
        "临湘" => "LXQ",
        "莱西" => "LXK",
        "林西" => "LXC",
        "滦县" => "UXP",
        "略阳" => "LYY",
        "莱阳" => "LYK",
        "辽阳" => "LYT",
        "临沂北" => "UYK",
        "凌源东" => "LDD",
        "连云港" => "UIH",
        "老羊壕" => "LYC",
        "临颍" => "LNF",
        "老营" => "LXL",
        "龙游" => "LMH",
        "罗源" => "LVS",
        "林源" => "LYX",
        "涟源" => "LAQ",
        "涞源" => "LYP",
        "耒阳西" => "LPQ",
        "临泽" => "LEJ",
        "龙爪沟" => "LZT",
        "雷州" => "UAQ",
        "六枝" => "LIW",
        "鹿寨" => "LIZ",
        "来舟" => "LZS",
        "龙镇" => "LZA",
        "拉鲊" => "LEM",
        "明安" => "MAC",
        "马鞍山" => "MAH",
        "毛坝" => "MBY",
        "毛坝关" => "MGY",
        "麻城北" => "MBN",
        "渑池" => "MCF",
        "明城" => "MCL",
        "庙城" => "MAP",
        "渑池南" => "MNF",
        "茅草坪" => "KPM",
        "猛洞河" => "MUQ",
        "磨刀石" => "MOB",
        "弥渡" => "MDF",
        "帽儿山" => "MRB",
        "明港" => "MGN",
        "梅河口" => "MHL",
        "马皇" => "MHZ",
        "孟家岗" => "MGB",
        "美兰" => "MHQ",
        "汨罗东" => "MQQ",
        "马莲河" => "MHB",
        "茅岭" => "MLZ",
        "庙岭" => "MLL",
        "茂林" => "MLD",
        "穆棱" => "MLB",
        "马林" => "MID",
        "马龙" => "MGM",
        "汨罗" => "MLQ",
        "木里图" => "MUD",
        "密马龙" => "MMM",
        "玛纳斯湖" => "MNR",
        "冕宁" => "UGW",
        "沐滂" => "MPQ",
        "马桥河" => "MQB",
        "闽清" => "MQS",
        "民权" => "MQF",
        "明水河" => "MUT",
        "麻山" => "MAB",
        "眉山" => "MSW",
        "漫水湾" => "MKW",
        "茂舍祖" => "MOM",
        "米沙子" => "MST",
        "庙台子" => "MZB",
        "美溪" => "MEB",
        "勉县" => "MVY",
        "麻阳" => "MVQ",
        "牧羊村" => "MCM",
        "米易" => "MMW",
        "麦园" => "MYS",
        "墨玉" => "MUR",
        "密云" => "MUP",
        "庙庄" => "MZJ",
        "米脂" => "MEY",
        "明珠" => "MFQ",
        "宁安" => "NAB",
        "农安" => "NAT",
        "南博山" => "NBK",
        "南仇" => "NCK",
        "南城司" => "NSP",
        "宁村" => "NCZ",
        "宁德" => "NES",
        "南观村" => "NGP",
        "南宫东" => "NFP",
        "南关岭" => "NLT",
        "宁国" => "NNH",
        "宁海" => "NHH",
        "南河川" => "NHJ",
        "南华" => "NHS",
        "泥河子" => "NHD",
        "宁家" => "NVT",
        "牛家" => "NJB",
        "南靖" => "NJS",
        "能家" => "NJD",
        "南口" => "NKP",
        "南口前" => "NKT",
        "南朗" => "NNQ",
        "乃林" => "NLD",
        "尼勒克" => "NIR",
        "那罗" => "ULZ",
        "宁陵县" => "NLF",
        "奈曼" => "NMD",
        "宁明" => "NMZ",
        "南木" => "NMX",
        "南平南" => "NNS",
        "那铺" => "NPZ",
        "南桥" => "NQD",
        "那曲" => "NQO",
        "暖泉" => "NQJ",
        "南台" => "NTT",
        "南头" => "NOQ",
        "宁武" => "NWV",
        "南湾子" => "NWP",
        "南翔北" => "NEH",
        "宁乡" => "NXQ",
        "内乡" => "NXF",
        "牛心台" => "NXT",
        "南峪" => "NUP",
        "娘子关" => "NIP",
        "南召" => "NAF",
        "南杂木" => "NZT",
        "库伦" => "KLD",
        "漯河西" => "LBN",
        "明港东" => "MDN",
        "蒙自北" => "MBM",
        "上海" => "SHH",
        "上海南" => "SNH",
        "上海虹桥" => "AOH",
        "上海西" => "SXH",
        "天津北" => "TBP",
        "天津" => "TJP",
        "天津南" => "TIP",
        "天津西" => "TXP",
        "石家庄北" => "VVP",
        "石家庄" => "SJP",
        "沈阳" => "SYT",
        "沈阳北" => "SBT",
        "沈阳东" => "SDT",
        "太原北" => "TBV",
        "太原东" => "TDV",
        "太原" => "TYV",
        "平顶山" => "PEN",
        "盘锦" => "PVD",
        "平凉" => "PIJ",
        "平凉南" => "POJ",
        "平泉" => "PQP",
        "坪石" => "PSQ",
        "萍乡" => "PXG",
        "凭祥" => "PXZ",
        "郫县西" => "PCW",
        "攀枝花" => "PRW",
        "蕲春" => "QRN",
        "青城山" => "QSW",
        "青岛" => "QDK",
        "清河城" => "QYP",
        "黔江" => "QNW",
        "曲靖" => "QJM",
        "前进镇" => "QEB",
        "齐齐哈尔" => "QHX",
        "七台河" => "QTB",
        "沁县" => "QVV",
        "泉州东" => "QRS",
        "泉州" => "QYS",
        "衢州" => "QEH",
        "融安" => "RAZ",
        "汝箕沟" => "RQJ",
        "瑞金" => "RJG",
        "日照" => "RZK",
        "双城堡" => "SCB",
        "绥芬河" => "SFB",
        "韶关东" => "SGQ",
        "山海关" => "SHD",
        "绥化" => "SHB",
        "三间房" => "SFX",
        "苏家屯" => "SXT",
        "舒兰" => "SLL",
        "三明" => "SMS",
        "神木" => "OMY",
        "三门峡" => "SMF",
        "商南" => "ONY",
        "遂宁" => "NIW",
        "四平" => "SPT",
        "商丘" => "SQF",
        "上饶" => "SRG",
        "韶山" => "SSQ",
        "宿松" => "OAH",
        "汕头" => "OTQ",
        "邵武" => "SWS",
        "涉县" => "OEP",
        "三亚" => "SEQ",
        "邵阳" => "SYQ",
        "十堰" => "SNN",
        "双鸭山" => "SSB",
        "松原" => "VYT",
        "深圳" => "SZQ",
        "苏州" => "SZH",
        "随州" => "SZN",
        "宿州" => "OXH",
        "朔州" => "SUV",
        "深圳西" => "OSQ",
        "塘豹" => "TBQ",
        "塔尔气" => "TVX",
        "潼关" => "TGY",
        "塘沽" => "TGP",
        "塔河" => "TXX",
        "通化" => "THL",
        "泰来" => "TLX",
        "吐鲁番" => "TFR",
        "通辽" => "TLD",
        "铁岭" => "TLT",
        "陶赖昭" => "TPT",
        "图们" => "TML",
        "铜仁" => "RDQ",
        "唐山北" => "FUP",
        "田师府" => "TFT",
        "泰山" => "TAK",
        "天水" => "TSJ",
        "唐山" => "TSP",
        "通远堡" => "TYT",
        "太阳升" => "TQT",
        "泰州" => "UTH",
        "桐梓" => "TZW",
        "通州西" => "TAP",
        "平安" => "PAL",
        "蓬安" => "PAW",
        "平安驿" => "PNO",
        "磐安镇" => "PAJ",
        "平安镇" => "PZT",
        "蒲城东" => "PEY",
        "蒲城" => "PCY",
        "裴德" => "PDB",
        "偏店" => "PRP",
        "平顶山西" => "BFF",
        "坡底下" => "PXJ",
        "瓢儿屯" => "PRT",
        "平房" => "PFB",
        "平岗" => "PGL",
        "平关" => "PGM",
        "盘关" => "PAM",
        "平果" => "PGZ",
        "徘徊北" => "PHP",
        "平河口" => "PHM",
        "盘锦北" => "PBD",
        "潘家店" => "PDP",
        "皮口" => "PKT",
        "普兰店" => "PLT",
        "偏岭" => "PNT",
        "平山" => "PSB",
        "彭山" => "PSW",
        "皮山" => "PSR",
        "彭水" => "PHW",
        "磐石" => "PSL",
        "平社" => "PSV",
        "平台" => "PVT",
        "平田" => "PTM",
        "莆田" => "PTS",
        "葡萄菁" => "PTW",
        "普湾" => "PWT",
        "平旺" => "PWV",
        "平型关" => "PGV",
        "普雄" => "POW",
        "平洋" => "PYX",
        "彭阳" => "PYJ",
        "平遥" => "PYV",
        "平邑" => "PIK",
        "平原堡" => "PPJ",
        "平原" => "PYK",
        "平峪" => "PYP",
        "彭泽" => "PZG",
        "邳州" => "PJH",
        "平庄" => "PZD",
        "泡子" => "POD",
        "平庄南" => "PND",
        "乾安" => "QOT",
        "庆安" => "QAB",
        "迁安" => "QQP",
        "祁东北" => "QRQ",
        "七甸" => "QDM",
        "曲阜东" => "QAK",
        "庆丰" => "QFT",
        "奇峰塔" => "QVP",
        "曲阜" => "QFK",
        "勤丰营" => "QFM",
        "琼海" => "QYQ",
        "秦皇岛" => "QTP",
        "千河" => "QUY",
        "清河" => "QIP",
        "清河门" => "QHD",
        "清华园" => "QHP",
        "渠旧" => "QJZ",
        "綦江" => "QJW",
        "潜江" => "QJN",
        "全椒" => "INH",
        "秦家" => "QJB",
        "祁家堡" => "QBT",
        "清涧县" => "QNY",
        "秦家庄" => "QZV",
        "七里河" => "QLD",
        "渠黎" => "QLZ",
        "秦岭" => "QLY",
        "青龙山" => "QGH",
        "青龙寺" => "QSM",
        "祁门" => "QIH",
        "前磨头" => "QMP",
        "青山" => "QSB",
        "全胜" => "QVB",
        "确山" => "QSN",
        "清水" => "QUJ",
        "前山" => "QXQ",
        "戚墅堰" => "QYH",
        "青田" => "QVH",
        "桥头" => "QAT",
        "青铜峡" => "QTJ",
        "前卫" => "QWD",
        "前苇塘" => "QWP",
        "渠县" => "QRW",
        "祁县" => "QXV",
        "青县" => "QXP",
        "桥西" => "QXJ",
        "清徐" => "QUV",
        "旗下营" => "QXC",
        "千阳" => "QOY",
        "沁阳" => "QYF",
        "泉阳" => "QYL",
        "祁阳北" => "QVQ",
        "七营" => "QYJ",
        "庆阳山" => "QSJ",
        "清远" => "QBQ",
        "清原" => "QYT",
        "钦州东" => "QDZ",
        "全州" => "QZZ",
        "钦州" => "QRZ",
        "青州市" => "QZK",
        "瑞安" => "RAH",
        "荣昌" => "RCW",
        "瑞昌" => "RCG",
        "如皋" => "RBH",
        "容桂" => "RUQ",
        "任丘" => "RQP",
        "乳山" => "ROK",
        "融水" => "RSZ",
        "热水" => "RSD",
        "容县" => "RXZ",
        "饶阳" => "RVP",
        "汝阳" => "RYF",
        "绕阳河" => "RHD",
        "汝州" => "ROF",
        "石坝" => "OBJ",
        "上板城" => "SBP",
        "施秉" => "AQW",
        "上板城南" => "OBP",
        "世博园" => "ZWT",
        "双城北" => "SBB",
        "商城" => "SWN",
        "莎车" => "SCR",
        "顺昌" => "SCS",
        "舒城" => "OCH",
        "神池" => "SMV",
        "沙城" => "SCP",
        "石城" => "SCT",
        "山城镇" => "SCL",
        "山丹" => "SDJ",
        "顺德" => "ORQ",
        "绥德" => "ODY",
        "邵东" => "SOQ",
        "水洞" => "SIL",
        "商都" => "SXC",
        "十渡" => "SEP",
        "四道湾" => "OUD",
        "顺德学院" => "OJQ",
        "绅坊" => "OLH",
        "双丰" => "OFB",
        "四方台" => "STB",
        "水富" => "OTW",
        "三关口" => "OKJ",
        "桑根达来" => "OGC",
        "韶关" => "SNQ",
        "上高镇" => "SVK",
        "上杭" => "JBS",
        "沙海" => "SED",
        "松河" => "SBM",
        "沙河" => "SHP",
        "沙河口" => "SKT",
        "赛汗塔拉" => "SHC",
        "沙河市" => "VOP",
        "沙后所" => "SSD",
        "山河屯" => "SHL",
        "三河县" => "OXP",
        "四合永" => "OHD",
        "三汇镇" => "OZW",
        "双河镇" => "SEL",
        "石河子" => "SZR",
        "三合庄" => "SVP",
        "三家店" => "ODP",
        "水家湖" => "SQH",
        "沈家河" => "OJJ",
        "松江河" => "SJL",
        "尚家" => "SJB",
        "孙家" => "SUB",
        "沈家" => "OJB",
        "松江" => "SAH",
        "三江口" => "SKD",
        "司家岭" => "OLK",
        "松江南" => "IMH",
        "石景山南" => "SRP",
        "邵家堂" => "SJJ",
        "三江县" => "SOZ",
        "三家寨" => "SMM",
        "十家子" => "SJD",
        "松江镇" => "OZL",
        "施家嘴" => "SHM",
        "深井子" => "SWT",
        "什里店" => "OMP",
        "疏勒" => "SUR",
        "疏勒河" => "SHJ",
        "舍力虎" => "VLD",
        "石磷" => "SPB",
        "绥棱" => "SIB",
        "石岭" => "SOL",
        "石林" => "SLM",
        "石林南" => "LNM",
        "石龙" => "SLQ",
        "萨拉齐" => "SLC",
        "索伦" => "SNT",
        "商洛" => "OLY",
        "沙岭子" => "SLP",
        "三门峡南" => "SCF",
        "三门县" => "OQH",
        "石门县" => "OMQ",
        "三门峡西" => "SXF",
        "肃宁" => "SYP",
        "宋" => "SOB",
        "双牌" => "SBZ",
        "四平东" => "PPT",
        "遂平" => "SON",
        "沙坡头" => "SFJ",
        "商丘南" => "SPF",
        "水泉" => "SID",
        "石泉县" => "SXY",
        "石桥子" => "SQT",
        "石人城" => "SRB",
        "石人" => "SRL",
        "山市" => "SQB",
        "神树" => "SWB",
        "鄯善" => "SSR",
        "三水" => "SJQ",
        "泗水" => "OSK",
        "石山" => "SAD",
        "松树" => "SFT",
        "首山" => "SAT",
        "三十家" => "SRD",
        "三十里堡" => "SST",
        "松树镇" => "SSL",
        "松桃" => "MZQ",
        "索图罕" => "SHX",
        "三堂集" => "SDH",
        "石头" => "OTB",
        "神头" => "SEV",
        "沙沱" => "SFM",
        "上万" => "SWP",
        "孙吴" => "SKB",
        "沙湾县" => "SXR",
        "遂溪" => "SXZ",
        "沙县" => "SAS",
        "绍兴" => "SOH",
        "歙县" => "OVH",
        "石岘" => "SXL",
        "上西铺" => "SXM",
        "石峡子" => "SXJ",
        "绥阳" => "SYB",
        "沭阳" => "FMH",
        "寿阳" => "SYV",
        "水洋" => "OYP",
        "三阳川" => "SYJ",
        "上腰墩" => "SPJ",
        "三营" => "OEJ",
        "顺义" => "SOP",
        "三义井" => "OYD",
        "三源浦" => "SYL",
        "三原" => "SAY",
        "上虞" => "BDH",
        "上园" => "SUD",
        "水源" => "OYJ",
        "桑园子" => "SAJ",
        "绥中北" => "SND",
        "苏州北" => "OHH",
        "宿州东" => "SRH",
        "深圳东" => "BJQ",
        "深州" => "OZP",
        "孙镇" => "OZY",
        "绥中" => "SZD",
        "尚志" => "SZB",
        "师庄" => "SNM",
        "松滋" => "SIN",
        "师宗" => "SEM",
        "苏州园区" => "KAH",
        "苏州新区" => "ITH",
        "石嘴山" => "SZJ",
        "泰安" => "TMK",
        "台安" => "TID",
        "通安驿" => "TAJ",
        "桐柏" => "TBF",
        "通北" => "TBB",
        "汤池" => "TCX",
        "桐城" => "TTH",
        "郯城" => "TZK",
        "铁厂" => "TCL",
        "桃村" => "TCK",
        "通道" => "TRQ",
        "田东" => "TDZ",
        "天岗" => "TGL",
        "土贵乌拉" => "TGC",
        "通沟" => "TOL",
        "太谷" => "TGV",
        "塔哈" => "THX",
        "棠海" => "THM",
        "唐河" => "THF",
        "泰和" => "THG",
        "太湖" => "TKH",
        "团结" => "TIX",
        "谭家井" => "TNJ",
        "陶家屯" => "TOT",
        "唐家湾" => "PDQ",
        "统军庄" => "TZP",
        "泰康" => "TKX",
        "吐列毛杜" => "TMD",
        "图里河" => "TEX",
        "亭亮" => "TIZ",
        "田林" => "TFZ",
        "铜陵" => "TJH",
        "铁力" => "TLB",
        "铁岭西" => "PXT",
        "天门" => "TMN",
        "天门南" => "TNN",
        "太姥山" => "TLS",
        "土牧尔台" => "TRC",
        "土门子" => "TCJ",
        "潼南" => "TVW",
        "洮南" => "TVT",
        "太平川" => "TIT",
        "太平镇" => "TEB",
        "图强" => "TQX",
        "台前" => "TTK",
        "天桥岭" => "TQL",
        "土桥子" => "TQJ",
        "汤山城" => "TCT",
        "桃山" => "TAB",
        "塔石嘴" => "TIM",
        "通途" => "TUT",
        "汤旺河" => "THB",
        "同心" => "TXJ",
        "土溪" => "TSW",
        "桐乡" => "TCH",
        "田阳" => "TRZ",
        "桃映" => "TKQ",
        "天义" => "TND",
        "汤阴" => "TYF",
        "驼腰岭" => "TIL",
        "太阳山" => "TYJ",
        "汤原" => "TYB",
        "塔崖驿" => "TYP",
        "滕州东" => "TEK",
        "台州" => "TZH",
        "天祝" => "TZJ",
        "滕州" => "TXK",
        "天镇" => "TZV",
        "桐子林" => "TEW",
        "天柱山" => "QWH",
        "前锋" => "QFB",
        "庆盛" => "QSQ",
        "深圳北" => "IOQ",
        "通海" => "TAM",
        "武汉" => "WHN",
        "王家营西" => "KNM",
        "乌鲁木齐" => "WMR",
        "西安北" => "EAY",
        "西安" => "XAY",
        "西安南" => "CAY",
        "西宁西" => "XXO",
        "银川" => "YIJ",
        "郑州" => "ZZF",
        "五常" => "WCB",
        "武昌" => "WCN",
        "瓦房店" => "WDT",
        "威海" => "WKK",
        "芜湖" => "WHH",
        "乌海西" => "WXC",
        "吴家屯" => "WJT",
        "武隆" => "WLW",
        "乌兰浩特" => "WWT",
        "渭南" => "WNY",
        "威舍" => "WSM",
        "歪头山" => "WIT",
        "武威" => "WUJ",
        "武威南" => "WWJ",
        "无锡" => "WXH",
        "乌西" => "WXR",
        "乌伊岭" => "WPB",
        "武夷山" => "WAS",
        "万源" => "WYY",
        "万州" => "WYW",
        "梧州" => "WZZ",
        "温州" => "RZH",
        "温州南" => "VRH",
        "西昌" => "ECW",
        "许昌" => "XCF",
        "西昌南" => "ENW",
        "香坊" => "XFB",
        "轩岗" => "XGV",
        "兴国" => "EUG",
        "宣汉" => "XHY",
        "新会" => "EFQ",
        "新晃" => "XLQ",
        "锡林浩特" => "XTC",
        "兴隆县" => "EXP",
        "厦门北" => "XKS",
        "厦门" => "XMS",
        "厦门高崎" => "XBS",
        "秀山" => "ETW",
        "小市" => "XST",
        "向塘" => "XTG",
        "宣威" => "XWM",
        "新乡" => "XXF",
        "信阳" => "XUN",
        "咸阳" => "XYY",
        "襄阳" => "XFN",
        "熊岳城" => "XYT",
        "兴义" => "XRZ",
        "新沂" => "VIH",
        "新余" => "XUG",
        "徐州" => "XCH",
        "延安" => "YWY",
        "宜宾" => "YBW",
        "亚布力南" => "YWB",
        "叶柏寿" => "YBD",
        "宜昌东" => "HAN",
        "永川" => "YCW",
        "宜春" => "YCG",
        "宜昌" => "YCN",
        "盐城" => "AFH",
        "运城" => "YNV",
        "伊春" => "YCB",
        "榆次" => "YCV",
        "杨村" => "YBP",
        "伊尔施" => "YET",
        "燕岗" => "YGW",
        "永济" => "YIV",
        "延吉" => "YJL",
        "营口" => "YKT",
        "牙克石" => "YKX",
        "阎良" => "YNY",
        "玉林" => "YLZ",
        "榆林" => "ALY",
        "一面坡" => "YPB",
        "伊宁" => "YMR",
        "阳平关" => "YAY",
        "玉屏" => "YZW",
        "原平" => "YPV",
        "延庆" => "YNP",
        "阳泉曲" => "YYV",
        "玉泉" => "YQB",
        "阳泉" => "AQP",
        "玉山" => "YNG",
        "营山" => "NUW",
        "燕山" => "AOP",
        "榆树" => "YRT",
        "鹰潭" => "YTG",
        "烟台" => "YAK",
        "伊图里河" => "YEX",
        "玉田县" => "ATP",
        "义乌" => "YWH",
        "阳新" => "YON",
        "义县" => "YXD",
        "益阳" => "AEQ",
        "岳阳" => "YYQ",
        "永州" => "AOQ",
        "扬州" => "YLH",
        "淄博" => "ZBK",
        "镇城底" => "ZDV",
        "自贡" => "ZGW",
        "珠海" => "ZHQ",
        "珠海北" => "ZIQ",
        "湛江" => "ZJZ",
        "镇江" => "ZJH",
        "张家界" => "DIQ",
        "张家口" => "ZKP",
        "张家口南" => "ZMP",
        "周口" => "ZKN",
        "哲里木" => "ZLC",
        "扎兰屯" => "ZTX",
        "驻马店" => "ZDN",
        "肇庆" => "ZVQ",
        "周水子" => "ZIT",
        "昭通" => "ZDW",
        "中卫" => "ZWJ",
        "资阳" => "ZYW",
        "遵义" => "ZIW",
        "枣庄" => "ZEK",
        "资中" => "ZZW",
        "株洲" => "ZZQ",
        "枣庄西" => "ZFK",
        "文安" => "WBP",
        "武安" => "WAP",
        "王安镇" => "WVP",
        "旺苍" => "WEW",
        "五叉沟" => "WCT",
        "文昌" => "WEQ",
        "温春" => "WDB",
        "五大连池" => "WRB",
        "文登" => "WBK",
        "五道沟" => "WDL",
        "五道河" => "WHP",
        "文地" => "WNZ",
        "卫东" => "WVT",
        "武当山" => "WRN",
        "望都" => "WDP",
        "乌尔旗汗" => "WHX",
        "潍坊" => "WFK",
        "万发屯" => "WFB",
        "王府" => "WUT",
        "瓦房店西" => "WXT",
        "王岗" => "WGB",
        "武功" => "WGY",
        "湾沟" => "WGL",
        "吴官田" => "WGM",
        "乌海" => "WVC",
        "苇河" => "WHB",
        "卫辉" => "WHF",
        "吴家川" => "WCJ",
        "五家" => "WUB",
        "威箐" => "WAM",
        "午汲" => "WJP",
        "渭津" => "WJL",
        "王家湾" => "WJJ",
        "倭肯" => "WQB",
        "五棵树" => "WKT",
        "五龙背" => "WBT",
        "乌兰哈达" => "WLC",
        "万乐" => "WEB",
        "瓦拉干" => "WVX",
        "温岭" => "VHH",
        "五莲" => "WLK",
        "乌拉特前旗" => "WQC",
        "乌拉山" => "WSC",
        "卧里屯" => "WLX",
        "渭南北" => "WBY",
        "乌奴耳" => "WRX",
        "万宁" => "WNQ",
        "万年" => "WWG",
        "渭南南" => "WVY",
        "渭南镇" => "WNJ",
        "沃皮" => "WPT",
        "吴堡" => "WUY",
        "吴桥" => "WUP",
        "汪清" => "WQL",
        "武清" => "WWP",
        "温泉" => "WQM",
        "武山" => "WSJ",
        "文水" => "WEV",
        "魏善庄" => "WSP",
        "王瞳" => "WTP",
        "五台山" => "WSV",
        "王团庄" => "WZJ",
        "五五" => "WVR",
        "无锡东" => "WGH",
        "卫星" => "WVB",
        "闻喜" => "WXV",
        "武乡" => "WVV",
        "无锡新区" => "IFH",
        "武穴" => "WXN",
        "吴圩" => "WYZ",
        "王杨" => "WYB",
        "五营" => "WWB",
        "武义" => "RYH",
        "瓦窑田" => "WIM",
        "五原" => "WYC",
        "苇子沟" => "WZL",
        "韦庄" => "WZY",
        "五寨" => "WZV",
        "王兆屯" => "WZB",
        "微子镇" => "WQP",
        "魏杖子" => "WKD",
        "新安" => "EAM",
        "兴安" => "XAZ",
        "新安县" => "XAF",
        "新保安" => "XAP",
        "下板城" => "EBP",
        "西八里" => "XLP",
        "宣城" => "ECH",
        "兴城" => "XCD",
        "小村" => "XEM",
        "新绰源" => "XRX",
        "下城子" => "XCB",
        "新城子" => "XCT",
        "喜德" => "EDW",
        "小得江" => "EJM",
        "西大庙" => "XMP",
        "小董" => "XEZ",
        "小东" => "XOD",
        "西斗铺" => "XPC",
        "息烽" => "XFW",
        "信丰" => "EFG",
        "襄汾" => "XFV",
        "新干" => "EGG",
        "孝感" => "XGN",
        "西固城" => "XUJ",
        "夏官营" => "XGJ",
        "西岗子" => "NBB",
        "襄河" => "XXB",
        "新和" => "XIR",
        "宣和" => "XWJ",
        "斜河涧" => "EEP",
        "新华屯" => "XAX",
        "新华" => "XHB",
        "新化" => "EHQ",
        "宣化" => "XHP",
        "兴和西" => "XEC",
        "小河沿" => "XYD",
        "下花园" => "XYP",
        "小河镇" => "EKY",
        "徐家" => "XJB",
        "峡江" => "EJG",
        "新绛" => "XJV",
        "辛集" => "ENP",
        "新江" => "XJM",
        "西街口" => "EKM",
        "许家屯" => "XJT",
        "许家台" => "XTJ",
        "谢家镇" => "XMT",
        "兴凯" => "EKB",
        "小榄" => "EAQ",
        "香兰" => "XNB",
        "兴隆店" => "XDD",
        "新乐" => "ELP",
        "新林" => "XPX",
        "小岭" => "XLB",
        "新李" => "XLJ",
        "西林" => "XYB",
        "西柳" => "GCT",
        "仙林" => "XPH",
        "新立屯" => "XLD",
        "小路溪" => "XLM",
        "兴隆镇" => "XZB",
        "新立镇" => "XGT",
        "新民" => "XMD",
        "西麻山" => "XMB",
        "下马塘" => "XAT",
        "孝南" => "XNV",
        "咸宁北" => "XRN",
        "兴宁" => "ENQ",
        "咸宁" => "XNN",
        "西平" => "XPN",
        "兴平" => "XPY",
        "新坪田" => "XPM",
        "霞浦" => "XOS",
        "溆浦" => "EPQ",
        "犀浦" => "XIW",
        "新青" => "XQB",
        "新邱" => "XQD",
        "兴泉堡" => "XQJ",
        "仙人桥" => "XRL",
        "小寺沟" => "ESP",
        "杏树" => "XSB",
        "夏石" => "XIZ",
        "浠水" => "XZN",
        "下社" => "XSV",
        "徐水" => "XSP",
        "小哨" => "XAM",
        "新松浦" => "XOB",
        "杏树屯" => "XDT",
        "许三湾" => "XSJ",
        "湘潭" => "XTQ",
        "邢台" => "XTP",
        "仙桃西" => "XAN",
        "下台子" => "EIP",
        "徐闻" => "XJQ",
        "新窝铺" => "EPD",
        "修武" => "XWF",
        "新县" => "XSN",
        "息县" => "ENN",
        "西乡" => "XQY",
        "湘乡" => "XXQ",
        "西峡" => "XIF",
        "孝西" => "XOV",
        "小新街" => "XXM",
        "新兴县" => "XGQ",
        "西小召" => "XZC",
        "小西庄" => "XXP",
        "向阳" => "XDB",
        "旬阳" => "XUY",
        "旬阳北" => "XBY",
        "襄阳东" => "XWN",
        "兴业" => "SNZ",
        "小雨谷" => "XHM",
        "信宜" => "EEQ",
        "小月旧" => "XFM",
        "小扬气" => "XYX",
        "祥云" => "EXM",
        "襄垣" => "EIF",
        "夏邑县" => "EJH",
        "新友谊" => "EYB",
        "新阳镇" => "XZJ",
        "徐州东" => "UUH",
        "新帐房" => "XZX",
        "悬钟" => "XRP",
        "新肇" => "XZT",
        "忻州" => "XXV",
        "汐子" => "XZD",
        "西哲里木" => "XRD",
        "新杖子" => "ERP",
        "姚安" => "YAC",
        "依安" => "YAX",
        "永安" => "YAS",
        "永安乡" => "YNB",
        "渔坝村" => "YBM",
        "亚布力" => "YBB",
        "元宝山" => "YUD",
        "羊草" => "YAB",
        "秧草地" => "YKM",
        "阳澄湖" => "AIH",
        "迎春" => "YYB",
        "叶城" => "YER",
        "盐池" => "YKJ",
        "砚川" => "YYY",
        "阳春" => "YQQ",
        "宜城" => "YIN",
        "应城" => "YHN",
        "禹城" => "YCK",
        "晏城" => "YEK",
        "羊场" => "YED",
        "阳城" => "YNF",
        "阳岔" => "YAL",
        "郓城" => "YPK",
        "雁翅" => "YAP",
        "云彩岭" => "ACP",
        "虞城县" => "IXH",
        "营城子" => "YCT",
        "永登" => "YDJ",
        "英德" => "YDQ",
        "尹地" => "YDM",
        "永定" => "YGS",
        "雁荡山" => "YGH",
        "于都" => "YDG",
        "园墩" => "YAJ",
        "英德西" => "IIQ",
        "永福" => "YFZ",
        "永丰营" => "YYM",
        "杨岗" => "YRB",
        "阳高" => "YOV",
        "阳谷" => "YIK",
        "友好" => "YOB",
        "余杭" => "EVH",
        "沿河城" => "YHP",
        "岩会" => "AEP",
        "羊臼河" => "YHM",
        "永嘉" => "URH",
        "营街" => "YAM",
        "盐津" => "AEW",
        "余江" => "YHG",
        "叶集" => "YCH",
        "燕郊" => "AJP",
        "姚家" => "YAT",
        "岳家井" => "YGJ",
        "一间堡" => "YJT",
        "英吉沙" => "YIR",
        "云居寺" => "AFP",
        "燕家庄" => "AZK",
        "永康" => "RFH",
        "营口东" => "YGT",
        "银浪" => "YJX",
        "永郎" => "YLW",
        "宜良北" => "YSM",
        "永乐店" => "YDY",
        "伊拉哈" => "YLX",
        "伊林" => "YLB",
        "彝良" => "ALW",
        "杨林" => "YLM",
        "余粮堡" => "YLD",
        "杨柳青" => "YQP",
        "月亮田" => "YUM",
        "亚龙湾" => "TWQ",
        "杨陵镇" => "YSY",
        "义马" => "YMF",
        "云梦" => "YMN",
        "元谋" => "YMM",
        "阳明堡" => "YVV",
        "一面山" => "YST",
        "玉门镇" => "YXJ",
        "沂南" => "YNK",
        "宜耐" => "YVM",
        "伊宁东" => "YNR",
        "一平浪" => "YIM",
        "营盘水" => "YZJ",
        "羊堡" => "ABM",
        "营盘湾" => "YPC",
        "阳泉北" => "YPP",
        "乐清" => "UPH",
        "焉耆" => "YSR",
        "源迁" => "AQK",
        "姚千户屯" => "YQT",
        "阳曲" => "YQV",
        "榆树沟" => "YGP",
        "月山" => "YBF",
        "玉石" => "YSJ",
        "偃师" => "YSF",
        "沂水" => "YUK",
        "榆社" => "YSV",
        "窑上" => "ASP",
        "元氏" => "YSP",
        "杨树岭" => "YAD",
        "野三坡" => "AIP",
        "榆树屯" => "YSX",
        "榆树台" => "YUT",
        "鹰手营子" => "YIP",
        "源潭" => "YTQ",
        "牙屯堡" => "YTZ",
        "烟筒山" => "YSL",
        "烟筒屯" => "YUX",
        "羊尾哨" => "YWM",
        "越西" => "YHW",
        "攸县" => "YOG",
        "玉溪" => "YXM",
        "永修" => "ACG",
        "酉阳" => "AFW",
        "余姚" => "YYH",
        "弋阳东" => "YIG",
        "岳阳东" => "YIQ",
        "阳邑" => "ARP",
        "鸭园" => "YYL",
        "鸳鸯镇" => "YYJ",
        "燕子砭" => "YZY",
        "宜州" => "YSZ",
        "仪征" => "UZH",
        "兖州" => "YZK",
        "迤资" => "YQM",
        "羊者窝" => "AEM",
        "杨杖子" => "YZD",
        "镇安" => "ZEY",
        "治安" => "ZAD",
        "招柏" => "ZBP",
        "张百湾" => "ZUP",
        "枝城" => "ZCN",
        "子长" => "ZHY",
        "诸城" => "ZQK",
        "邹城" => "ZIK",
        "赵城" => "ZCV",
        "章党" => "ZHT",
        "肇东" => "ZDB",
        "照福铺" => "ZFM",
        "章古台" => "ZGD",
        "赵光" => "ZGB",
        "中和" => "ZHX",
        "中华门" => "VNH",
        "枝江北" => "ZIN",
        "钟家村" => "ZJY",
        "朱家沟" => "ZUB",
        "紫荆关" => "ZYP",
        "周家" => "ZOB",
        "诸暨" => "ZDH",
        "镇江南" => "ZEH",
        "周家屯" => "ZOD",
        "郑家屯" => "ZJD",
        "褚家湾" => "CWJ",
        "湛江西" => "ZWQ",
        "朱家窑" => "ZUJ",
        "曾家坪子" => "ZBW",
        "张兰" => "ZLV",
        "镇赉" => "ZLT",
        "枣林" => "ZIV",
        "扎鲁特" => "ZLD",
        "扎赉诺尔西" => "ZXX",
        "樟木头" => "ZOQ",
        "中牟" => "ZGF",
        "中宁东" => "ZDJ",
        "中宁" => "VNJ",
        "中宁南" => "ZNJ",
        "镇平" => "ZPF",
        "漳平" => "ZPS",
        "泽普" => "ZPR",
        "枣强" => "ZVP",
        "张桥" => "ZQY",
        "章丘" => "ZTK",
        "朱日和" => "ZRC",
        "泽润里" => "ZLM",
        "中山北" => "ZGQ",
        "樟树东" => "ZOG",
        "中山" => "ZSQ",
        "柞水" => "ZSY",
        "钟山" => "ZSZ",
        "樟树" => "ZSG",
        "珠窝" => "ZOP",
        "张维屯" => "ZWB",
        "彰武" => "ZWD",
        "棕溪" => "ZOY",
        "钟祥" => "ZTN",
        "资溪" => "ZXS",
        "镇西" => "ZVT",
        "张辛" => "ZIP",
        "正镶白旗" => "ZXC",
        "紫阳" => "ZVY",
        "枣阳" => "ZYN",
        "竹园坝" => "ZAW",
        "张掖" => "ZYJ",
        "镇远" => "ZUW",
        "朱杨溪" => "ZXW",
        "漳州东" => "GOS",
        "漳州" => "ZUS",
        "壮志" => "ZUX",
        "子洲" => "ZZY",
        "中寨" => "ZZM",
        "涿州" => "ZXP",
        "咋子" => "ZAL",
        "卓资山" => "ZZC",
        "株洲西" => "ZAQ",
        "许昌东" => "XVF",
        "孝感北" => "XJN",
        "邢台东" => "EDP",
        "新乡东" => "EGF",
        "西阳村" => "XQF",
        "信阳东" => "OYN",
        "雨格" => "VTM",
        "正定机场" => "ZHP",
        "织金" => "IZW",
        "驻马店西" => "ZLN",
        "涿州东" => "ZAP",
        "卓资东" => "ZDC",
        "郑州东" => "ZAF"
);
?>
View Code
php
function gettrain($start,$end,$data,$time){
    $station = include('./name.php');
    $startstaion = $station[$start];
    $endstation = $station[$end];
    if(empty($data)){
        $date = date("Y-m-d",time());
    }else{
        $num = explode("-", $data);
         if(count($num)==2){
             $date = date("Y",time())."-".$data;
        }else if(count($num)==3){
            $date = $data;
        }else{
            exit("time error");
        }
    }
    if(empty($startstaion)||empty($endstation)){
        exit("stdin error");
    }
    $url ="http://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=".$date."&from_station=".$startstaion."&to_station=".$endstation;
    $data = doget($url);
    $rdata;
    $rdatacount = 0;
    if(!$data['status']){
        exit('check error');
    }else{
        $data = $data['data']['datas'];
        foreach ($data as $key => $value) {
            $start_time = $date." ".$data[$key]["start_time"];
            $ttime = $date." ".$time;
            if(strtotime($start_time)<strtotime($ttime)){
                  continue;
             }
            $tcount = $rdatacount++;
           if($tcount==10){
                     break;
            }
            
            $rdata[$tcount]["gr_num"] =  $data[$key]["gr_num"];
            $rdata[$tcount]["qt_num"] =  $data[$key]["qt_num"];
            $rdata[$tcount]["rw_num"] =  $data[$key]["rw_num"];
            $rdata[$tcount]["rz_num"] =  $data[$key]["rz_num"];
            $rdata[$tcount]["tz_num"] =  $data[$key]["tz_num"];
            $rdata[$tcount]["wz_num"] =  $data[$key]["wz_num"];
            $rdata[$tcount]["yw_num"] =  $data[$key]["yw_num"];
            $rdata[$tcount]["yz_num"] =  $data[$key]["yz_num"];
            $rdata[$tcount]["ze_num"] =  $data[$key]["ze_num"];
            $rdata[$tcount]["zy_num"] =  $data[$key]["zy_num"];
            $rdata[$tcount]["swz_num"]=  $data[$key]["swz_num"];
            
            $rdata[$tcount]["train_no"] = $data[$key]["train_no"];
             $rdata[$tcount]["from_station_no"] = $data[$key]["from_station_no"];
             $rdata[$tcount]["to_station_no"] = $data[$key]["to_station_no"];
             $rdata[$tcount]["seat_types"] = $data[$key]["seat_types"];
           $rdata[$tcount]["lishi"] = $data[$key]["lishi"];
            $rdata[$tcount]["arrive_time"] = $data[$key]["arrive_time"];
           $rdata[$tcount]["start_time"] = $data[$key]["start_time"];
           $rdata[$tcount]["end_station_name"] = $data[$key]["end_station_name"];
           $rdata[$tcount]["start_station_name"] = $data[$key]["start_station_name"];
           $rdata[$tcount]["station_train_code"] = $data[$key]["station_train_code"];
            $rdata[$tcount]["date"] = $date;
             
        }
    }
    return $rdata;
}
function doget($url){
   
    if(function_exists('file_get_contents')) {
         
        $optionget = array('http' => array('method' => "GET", 'header' => "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.0.04506; CIBA)\r\nAccept:*/*\r\nReferer:https://kyfw.12306.cn/otn/lcxxcx/init"));
        $file_contents = file_get_contents($url, false , stream_context_create($optionget));
    } else {
        
            $ch = curl_init();
            $timeout = 5;
            $header = array(
                'Accept:*/*',
                'Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3',
                'Accept-Encoding:gzip,deflate,sdch',
                'Accept-Language:zh-CN,zh;q=0.8,ja;q=0.6,en;q=0.4',
                'Connection:keep-alive',
                'Host:kyfw.12306.cn',
                'Referer:https://kyfw.12306.cn/otn/lcxxcx/init',
            );
                
        
        curl_setopt ($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $file_contents = curl_exec($ch);
        curl_close($ch);
        //exit( $file_contents);
    }
    
    $file_contents = json_decode($file_contents,true);
   
    return $file_contents;
}

?>
View Code

6.微信效果