时间:2021-07-01 10:21:17 帮助过:5人阅读
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的,因此只能在网上拷贝了,如有复制,纯属巧合。
View Code
- <!--?<span-->php
- <span>define</span>("TOKEN", "weixin"<span>);
- </span><span>Session_start</span><span>();
- </span><span>Session_Register</span>("kw"<span>);
- </span><span>$wechatObj</span> = <span>new</span><span> wechatCallbackapiTest();
- </span><span>require_once</span>("train.php"<span>);
- </span><span>$tqTpl</span> = "<xml> <tousername><!--[CDATA[%s]]--></tousername> <fromusername><!--[CDATA[%s]]--></fromusername> <createtime>%s</createtime> <msgtype><!--[CDATA[%s]]--></msgtype> 5 <item> <title><![CDATA[%s]]></title> <description><!--[CDATA[%s]]--></description> <picurl><!--[CDATA[%s]]--></picurl> <url><!--[CDATA[%s]]--></url> </item> <item> <title><![CDATA[%s]]></title> <description><!--[CDATA[%s]]--></description> <picurl><!--[CDATA[%s]]--></picurl> <url><!--[CDATA[%s]]--></url> </item> <item> <title><![CDATA[%s]]></title> <description><!--[CDATA[%s]]--></description> <picurl><!--[CDATA[%s]]--></picurl> <url><!--[CDATA[%s]]--></url> </item> <item> <title><![CDATA[%s]]></title> <description><!--[CDATA[%s]]--></description> <picurl><!--[CDATA[%s]]--></picurl> <url><!--[CDATA[%s]]--></url> </item> <item> <title><![CDATA[%s]]></title> <description><!--[CDATA[%s]]--></description> <picurl><!--[CDATA[%s]]--></picurl> <url><!--[CDATA[%s]]--></url> </item> <item> <title><![CDATA[%s]]></title> <description><!--[CDATA[%s]]--></description> <picurl><!--[CDATA[%s]]--></picurl> <url><!--[CDATA[%s]]--></url> </item> </xml> "<span>;
- </span><span>if</span> (!<span>isset</span>(<span>$_GET</span>['echostr'<span>])) {
- </span><span>$wechatObj</span>-><span>responseMsg();
- }</span><span>else</span><span>{
- </span><span>$wechatObj</span>-><span>valid();
- }
- </span><span>class</span><span> wechatCallbackapiTest
- {
- </span><span>//</span><span>验证签名</span>
- <span>public</span> <span>function</span><span> valid()
- {
- </span><span>$echoStr</span> = <span>$_GET</span>["echostr"<span>];
- </span><span>$signature</span> = <span>$_GET</span>["signature"<span>];
- </span><span>$timestamp</span> = <span>$_GET</span>["timestamp"<span>];
- </span><span>$nonce</span> = <span>$_GET</span>["nonce"<span>];
- </span><span>$token</span> =<span> TOKEN;
- </span><span>$tmpArr</span> = <span>array</span>(<span>$token</span>, <span>$timestamp</span>, <span>$nonce</span><span>);
- </span><span>sort</span>(<span>$tmpArr</span><span>);
- </span><span>$tmpStr</span> = <span>implode</span>(<span>$tmpArr</span><span>);
- </span><span>$tmpStr</span> = <span>sha1</span>(<span>$tmpStr</span><span>);
- </span><span>if</span>(<span>$tmpStr</span> == <span>$signature</span><span>){
- </span><span>echo</span> <span>$echoStr</span><span>;
- </span><span>exit</span><span>;
- }
- }
- </span><span>//</span><span>响应消息</span>
- <span>public</span> <span>function</span><span> responseMsg()
- {
- </span><span>$postStr</span> = <span>$GLOBALS</span>["HTTP_RAW_POST_DATA"<span>];
- </span><span>if</span> (!<span>empty</span>(<span>$postStr</span><span>)){
- </span><span>$this</span>->logger("R ".<span>$postStr</span><span>);
- </span><span>$postObj</span> = <span>simplexml_load_string</span>(<span>$postStr</span>, 'SimpleXMLElement',<span> LIBXML_NOCDATA);
- </span><span>$RX_TYPE</span> = <span>trim</span>(<span>$postObj</span>-><span>MsgType);
- </span><span>//</span><span>消息类型分离</span>
- <span>switch</span> (<span>$RX_TYPE</span><span>)
- {
- </span><span>case</span> "event":
- <span>$result</span> = <span>$this</span>->receiveEvent(<span>$postObj</span><span>);
- </span><span>break</span><span>;
- </span><span>case</span> "text":
- <span>$result</span> = <span>$this</span>->receiveTulingText(<span>$postObj</span><span>);
- </span><span>break</span><span>;
- </span><span>case</span> "image":
- <span>$result</span> = <span>$this</span>->receiveImage(<span>$postObj</span><span>);
- </span><span>break</span><span>;
- </span><span>case</span> "location":
- <span>$result</span> = <span>$this</span>->receiveLocation(<span>$postObj</span><span>);
- </span><span>break</span><span>;
- </span><span>case</span> "voice":
- <span>$result</span> = <span>$this</span>->receiveVoice(<span>$postObj</span><span>);
- </span><span>break</span><span>;
- </span><span>case</span> "video":
- <span>$result</span> = <span>$this</span>->receiveVideo(<span>$postObj</span><span>);
- </span><span>break</span><span>;
- </span><span>case</span> "link":
- <span>$result</span> = <span>$this</span>->receiveLink(<span>$postObj</span><span>);
- </span><span>break</span><span>;
- </span><span>default</span>:
- <span>$result</span> = "unknown msg type: ".<span>$RX_TYPE</span><span>;
- </span><span>break</span><span>;
- }
- </span><span>$this</span>->logger("T ".<span>$result</span><span>);
- </span><span>echo</span> <span>$result</span><span>;
- }</span><span>else</span><span> {
- </span><span>echo</span> ""<span>;
- </span><span>exit</span><span>;
- }
- }
- </span><span>//</span><span>接收事件消息</span>
- <span>private</span> <span>function</span> receiveEvent(<span>$object</span><span>)
- {
- </span><span>$content</span> = ""<span>;
- </span><span>switch</span> (<span>$object</span>-><span>Event)
- {
- </span><span>case</span> "subscribe":
- <span>$content</span> = "欢迎关注TomSnail "<span>;
- </span><span>$content</span> .= (!<span>empty</span>(<span>$object</span>->EventKey))?("\n来自二维码场景 ".<span>str_replace</span>("qrscene_","",<span>$object</span>->EventKey)):""<span>;
- </span><span>break</span><span>;
- </span><span>case</span> "unsubscribe":
- <span>$content</span> = "取消关注"<span>;
- </span><span>break</span><span>;
- </span><span>case</span> "SCAN":
- <span>$content</span> = "扫描场景 ".<span>$object</span>-><span>EventKey;
- </span><span>break</span><span>;
- </span><span>case</span> "CLICK":
- <span>switch</span> (<span>$object</span>-><span>EventKey)
- {
- </span><span>case</span> "COMPANY":
- <span>$content</span> = <span>array</span><span>();
- </span><span>$content</span>[] = <span>array</span>("Title"=>"多图文1标题", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"<span>);
- </span><span>break</span><span>;
- </span><span>default</span>:
- <span>$content</span> = "点击菜单:".<span>$object</span>-><span>EventKey;
- </span><span>break</span><span>;
- }
- </span><span>break</span><span>;
- </span><span>case</span> "LOCATION":
- <span>$content</span> = "上传位置:纬度 ".<span>$object</span>->Latitude.";经度 ".<span>$object</span>-><span>Longitude;
- </span><span>break</span><span>;
- </span><span>case</span> "VIEW":
- <span>$content</span> = "跳转链接 ".<span>$object</span>-><span>EventKey;
- </span><span>break</span><span>;
- </span><span>case</span> "MASSSENDJOBFINISH":
- <span>$content</span> = "消息ID:".<span>$object</span>->MsgID.",结果:".<span>$object</span>->Status.",粉丝数:".<span>$object</span>->TotalCount.",过滤:".<span>$object</span>->FilterCount.",发送成功:".<span>$object</span>->SentCount.",发送失败:".<span>$object</span>-><span>ErrorCount;
- </span><span>break</span><span>;
- </span><span>default</span>:
- <span>$content</span> = "receive a new event: ".<span>$object</span>-><span>Event;
- </span><span>break</span><span>;
- }
- </span><span>if</span>(<span>is_array</span>(<span>$content</span><span>)){
- </span><span>if</span> (<span>isset</span>(<span>$content</span>[0<span>])){
- </span><span>$result</span> = <span>$this</span>->transmitNews(<span>$object</span>, <span>$content</span><span>);
- }</span><span>else</span> <span>if</span> (<span>isset</span>(<span>$content</span>['MusicUrl'<span>])){
- </span><span>$result</span> = <span>$this</span>->transmitMusic(<span>$object</span>, <span>$content</span><span>);
- }
- }</span><span>else</span><span>{
- </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
- }
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>private</span> <span>function</span> receiveTulingText(<span>$object</span><span>){
- </span><span>try</span><span>{
- </span><span>$keyword</span> = <span>trim</span>(<span>$object</span>-><span>Content);
- </span><span>$userid</span> = <span>trim</span>(<span>$object</span>-><span>FromUserName);
- </span><span>$apiKey</span> = "*******************************"<span>;
- </span><span>$apiURL</span> = "http://www.tuling123.com/openapi/api?key=".<span>$apiKey</span>."&info=".<span>$keyword</span>."&userid=".<span>userid;
- </span><span>if</span>((<span>substr_count</span>(<span>$keyword</span>,'天气')!=0)||<span>$_SESSION</span>["kw"]=="天气"){ <span>//</span><span>百度地图API</span>
- <span>if</span>(<span>$keyword</span>=="天气"<span>){
- </span><span>$_SESSION</span>["kw"]="天气"<span>;
- </span><span>$content</span> = "请输入城市".<span>$_SESSION</span>["kw"<span>];
- }</span><span>else</span><span>{
- </span><span>$geshu</span> = <span>substr_count</span>(<span>$keyword</span>,'天气'<span>);
- </span><span>if</span>(<span>$geshu</span>==0<span>){
- </span><span>$city</span> = <span>$keyword</span><span>;
- }</span><span>else</span><span>{
- </span><span>$t</span> = <span>explode</span>("天气",<span>$keyword</span><span>);
- </span><span>for</span>(<span>$i</span>=0;<span>$i</span><=<span>$geshu</span>;<span>$i</span>++<span>)
- {
- </span><span>if</span>(<span>$t</span>[<span>$i</span>]!=''<span>)
- {
- </span><span>$city</span> = <span>$t</span>[<span>$i</span><span>];
- </span><span>break</span><span>;
- }
- }
- }
- </span><span>$mykey</span> ="*********************"<span>;
- </span><span>$url</span> = "http://api.map.baidu.com/telematics/v3/weather?location=".<span>$city</span>."&output=json&ak=".<span>$mykey</span><span>;
- </span><span>$output</span> = <span>file_get_contents</span>(<span>$url</span><span>);
- </span><span>$contentStr</span> = json_decode(<span>$output</span>, <span>true</span><span>);
- </span><span>if</span>(<span>$contentStr</span>['status']=='success'<span>)
- {
- </span><span>$T</span>[0]['Title']=<span>$contentStr</span>['date']." ".<span>$contentStr</span>['results'][0]['currentCity']."天气"<span>;
- </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>if</span>(<span>is_array</span>(<span>$contentStr</span>['results'][0]['index'<span>]))
- {
- </span><span>$T</span>[2]['Title']="【pm2.5】".<span>$contentStr</span>['results'][0]['pm25']."\n"."【".<span>$contentStr</span>['results'][0]['index'][0]['title']."】"."(".<span>$contentStr</span>['results'][0]['index'][0]['zs'].") ".<span>$contentStr</span>['results'][0]['index'][0]['des'<span>];
- </span><span>//</span><span>下一行是洗车指数,感觉不对主题还是不要的好。。 //$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']; </span>
- <span>$T</span>[2]['Title']=<span>$T</span>[2]['Title']."\n"."【".<span>$contentStr</span>['results'][0]['index'][2]['title']."】(".<span>$contentStr</span>['results'][0]['index'][2]['zs'].")".<span>$contentStr</span>['results'][0]['index'][2]['des'<span>];
- }
- </span><span>else</span>
- <span>$guowai</span>=1<span>;
- </span><span>for</span>(<span>$i</span>=1,<span>$aaa</span>=0;<span>$i</span><=5;<span>$i</span>++<span>)
- {
- </span><span>if</span>(<span>$i</span>==2 && <span>$guowai</span>!=1<span>)
- </span><span>continue</span><span>;
- </span><span>if</span>(<span>$guowai</span>==1 && <span>$i</span>==5<span>)
- </span><span>continue</span><span>;
- </span><span>$T</span>[<span>$i</span>]['Title']=<span>$contentStr</span>['results'][0]['weather_data'][<span>$aaa</span>]['date']."".<span>$contentStr</span>['results'][0]['weather_data'][<span>$aaa</span>]['temperature']."".<span>$contentStr</span>['results'][0]['weather_data'][<span>$aaa</span>]['weather']." ".<span>$contentStr</span>['results'][0]['weather_data'][<span>$aaa</span>]['wind'<span>];
- </span><span>$T</span>[<span>$i</span>]['PicUrl']=<span>$contentStr</span>['results'][0]['weather_data'][<span>$aaa</span>]['dayPictureUrl'<span>];
- </span><span>$T</span>[<span>$i</span>]['Url']=<span>$contentStr</span>['results'][0]['weather_data'][<span>$aaa</span>]['dayPictureUrl'<span>];
- </span><span>$aaa</span>++<span>;
- }
- </span><span>$content</span> = <span>$T</span><span>;
- }
- }
- }</span><span>else</span> <span>if</span>(<span>substr_count</span>(<span>$keyword</span>,'火车')!=0 && <span>$keyword</span>!='火车'){<span>//</span><span>12306</span>
- <span>$geshu</span> = <span>substr_count</span>(<span>$keyword</span>,'火车:'<span>);
- </span><span>$k</span> = <span>str_replace</span>('火车 ', "", <span>$keyword</span><span>);
- </span><span>$t</span> = <span>explode</span>(" ",<span>$k</span><span>);
- </span><span>$startstaion</span> = <span>$t</span>[0<span>];
- </span><span>$endstation</span> = <span>$t</span>[1<span>];
- </span><span>$date</span> =<span>$t</span>[2<span>];
- </span><span>if</span>(<span>$date</span>==<span>null</span><span>){
- </span><span>$date</span> = <span>date</span>("Y-m-d",<span>time</span><span>());
- }
- </span><span>if</span>(<span>substr_count</span>(<span>$date</span>,'-')==0<span>){
- </span><span>$date</span> = <span>date</span>("Y-m",<span>time</span>())."-".<span>$date</span><span>;
- }
- </span><span>$time</span> =<span>$t</span>[3<span>];
- </span><span>if</span>(<span>$time</span>==<span>null</span><span>){
- </span><span>$time</span> = "00:00"<span>;
- }
- </span><span>if</span>(<span>substr_count</span>(<span>$time</span>,':')==0<span>){
- </span><span>$time</span> = <span>$time</span>.":00"<span>;
- }
- </span><span>$data</span> = gettrain(<span>$startstaion</span>,<span>$endstation</span>,<span>$date</span>,<span>$time</span><span>);
- </span><span>$str</span>=""<span>;
- </span><span>$T</span>[0]['Title']=<span>$startstaion</span>."到".<span>$endstation</span>." ".<span>$date</span>." ".<span>$time</span>."以后10列火车信息"<span>;
- </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$count</span> = 1<span>;
- </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
- </span><span>$str</span>=<span>$count</span>." "<span>;
- </span><span>$str</span>.="火车列次:{<span>$data</span>[<span>$key</span>]['station_train_code']}\n"<span>;
- </span><span>$str</span>.="始发站:{<span>$data</span>[<span>$key</span>]['start_station_name']},终点站:{<span>$data</span>[<span>$key</span>]['end_station_name']}\n"<span>;
- </span><span>$str</span>.="出发时间:{<span>$data</span>[<span>$key</span>]['start_time']},到站时间:{<span>$data</span>[<span>$key</span>]['arrive_time']},历时:{<span>$data</span>[<span>$key</span>]['lishi']}\n"<span>;
- </span><span>$str</span>.="一等座:{<span>$data</span>[<span>$key</span>]['zy_num']}\n二等座:{<span>$data</span>[<span>$key</span>]['ze_num']}\n硬座:{<span>$data</span>[<span>$key</span>]['yz_num']}\n硬卧:{<span>$data</span>[<span>$key</span>]['yw_num']}\n"<span>;
- </span><span>$str</span>.="软卧:{<span>$data</span>[<span>$key</span>]['rw_num']}\n软座:{<span>$data</span>[<span>$key</span>]['rz_num']}\n特等座:{<span>$data</span>[<span>$key</span>]['tz_num']}\n无座:{<span>$data</span>[<span>$key</span>]['wz_num']}"<span>;
- </span><span>$count</span> = <span>$count</span>+1<span>;
- </span><span>$T</span>[<span>$count</span>]['Title'] = <span>$str</span><span>;
- </span><span>//</span><span> $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";</span>
- <span>$T</span>[<span>$count</span>]['Url'] = "https://kyfw.12306.cn/otn/login/init"<span>;
- </span><span>if</span>(<span>$count</span>==10<span>){
- </span><span>break</span><span>;}
- }
- </span><span>$content</span> = <span>$T</span><span>;
- }</span><span>else</span>{<span>//</span><span>图灵机器人</span>
- <span>$file_contents</span> = <span>file_get_contents</span>(<span>$apiURL</span><span>);
- </span><span>$file_contents</span> = json_decode(<span>$file_contents</span>,<span>true</span><span>);
- </span><span>$code</span> = <span>$file_contents</span>["code"<span>];
- </span><span>if</span>(<span>$code</span>==100000<span>){
- </span><span>$content</span> = <span>$file_contents</span>["text"<span>];
- }</span><span>else</span> <span>if</span>(<span>$code</span>==200000<span>){
- </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
- </span><span>//</span><span>$T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; </span>
- <span>$T</span>[0]['Url']=<span>$file_contents</span>["url"<span>];
- </span><span>$content</span> = <span>$T</span><span>;
- }</span><span>else</span> <span>if</span>(<span>$code</span>==302000<span>){
- </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
- </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$data</span> = <span>$file_contents</span>["list"<span>];
- </span><span>$count</span> = 1<span>;
- </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
- </span><span>$T</span>[<span>$count</span>]['Title']=<span>$data</span>[<span>$key</span>]["article"<span>];
- </span><span>$T</span>[<span>$count</span>]['PicUrl']=<span>$data</span>[<span>$key</span>]["icon"<span>];
- </span><span>$T</span>[<span>$count</span>]['Url']=<span>$data</span>[<span>$key</span>]["detailurl"<span>];
- </span><span>$count</span>++<span>;
- }
- </span><span>$content</span> = <span>$T</span><span>;
- }</span><span>else</span> <span>if</span>(<span>$code</span>==305000<span>){
- </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
- </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$data</span> = <span>$file_contents</span>["list"<span>];
- </span><span>$count</span> = 1<span>;
- </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
- </span><span>$T</span>[<span>$count</span>]['Title']="车次".<span>$data</span>[<span>$key</span>]["trainnum"]."\n起始站:".<span>$data</span>[<span>$key</span>]["start"]."\n到达站:".<span>$data</span>[<span>$key</span>]["terminal"]."\n开车时间:".<span>$data</span>[<span>$key</span>]["starttime"]."\n到达时间:".<span>$data</span>[<span>$key</span>]["endtime"<span>];
- </span><span>$T</span>[<span>$count</span>]['PicUrl']=<span>$data</span>[<span>$key</span>]["icon"<span>];
- </span><span>$T</span>[<span>$count</span>]['Url']=<span>$data</span>[<span>$key</span>]["detailurl"<span>];
- </span><span>$count</span>++<span>;
- </span><span>if</span>(<span>$count</span>==10<span>){
- </span><span>break</span><span>;
- }
- }
- </span><span>$content</span> = <span>$T</span><span>;
- }</span><span>else</span> <span>if</span>(<span>$code</span>==306000<span>){
- </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
- </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$data</span> = <span>$file_contents</span>["list"<span>];
- </span><span>$count</span> = 1<span>;
- </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
- </span><span>$T</span>[<span>$count</span>]['Title']="航班号".<span>$data</span>[<span>$key</span>]["flight"]."航班路线".<span>$data</span>[<span>$key</span>]["route"]."\n起飞时间:".<span>$data</span>[<span>$key</span>]["starttime"]."\n到达时间:".<span>$data</span>[<span>$key</span>]["endtime"]."\n状态:".<span>$data</span>[<span>$key</span>]["state"<span>];
- </span><span>$T</span>[<span>$count</span>]['PicUrl']=<span>$data</span>[<span>$key</span>]["icon"<span>];
- </span><span>$T</span>[<span>$count</span>]['Url']=<span>$data</span>[<span>$key</span>]["detailurl"<span>];
- </span><span>$count</span>++<span>;
- }
- </span><span>$content</span> = <span>$T</span><span>;
- }</span><span>else</span> <span>if</span>(<span>$code</span>==308000<span>){
- </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
- </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
- </span><span>$data</span> = <span>$file_contents</span>["list"<span>];
- </span><span>$count</span> = 1<span>;
- </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
- </span><span>$T</span>[<span>$count</span>]['Title']="名称".<span>$data</span>[<span>$key</span>]["name"]."详情".<span>$data</span>[<span>$key</span>]["info"<span>];
- </span><span>$T</span>[<span>$count</span>]['PicUrl']=<span>$data</span>[<span>$key</span>]["icon"<span>];
- </span><span>$T</span>[<span>$count</span>]['Url']=<span>$data</span>[<span>$key</span>]["detailurl"<span>];
- </span><span>$count</span>++<span>;
- }
- </span><span>$content</span> = <span>$T</span><span>;
- }</span><span>else</span><span>{
- </span><span>$content</span> = <span>$file_contents</span>["text"<span>];
- }
- }
- </span><span>if</span>(<span>is_array</span>(<span>$content</span><span>)){
- </span><span>if</span> (<span>isset</span>(<span>$content</span>[0]['PicUrl'<span>])){
- </span><span>$result</span> = <span>$this</span>->transmitNews(<span>$object</span>, <span>$content</span><span>);
- }</span><span>else</span> <span>if</span> (<span>isset</span>(<span>$content</span>['MusicUrl'<span>])){
- </span><span>$result</span> = <span>$this</span>->transmitMusic(<span>$object</span>, <span>$content</span><span>);
- }
- }</span><span>else</span><span>{
- </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
- }
- }</span><span>catch</span>(<span>Exception</span> <span>$e</span><span>){
- </span><span>$content</span>=<span>$e</span>-><span>getMessage();
- </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
- }
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>接收图片消息</span>
- <span>private</span> <span>function</span> receiveImage(<span>$object</span><span>)
- {
- </span><span>$content</span> = <span>array</span>("MediaId"=><span>$object</span>-><span>MediaId);
- </span><span>$result</span> = <span>$this</span>->transmitImage(<span>$object</span>, <span>$content</span><span>);
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>接收位置消息</span>
- <span>private</span> <span>function</span> receiveLocation(<span>$object</span><span>)
- {
- </span><span>$content</span> = "你发送的是位置,纬度为:".<span>$object</span>->Location_X.";经度为:".<span>$object</span>->Location_Y.";缩放级别为:".<span>$object</span>->Scale.";位置为:".<span>$object</span>-><span>Label;
- </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>接收语音消息</span>
- <span>private</span> <span>function</span> receiveVoice(<span>$object</span><span>)
- {
- </span><span>if</span> (<span>isset</span>(<span>$object</span>->Recognition) && !<span>empty</span>(<span>$object</span>-><span>Recognition)){
- </span><span>$content</span> = "你刚才说的是:".<span>$object</span>-><span>Recognition;
- </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
- }</span><span>else</span><span>{
- </span><span>$content</span> = <span>array</span>("MediaId"=><span>$object</span>-><span>MediaId);
- </span><span>$result</span> = <span>$this</span>->transmitVoice(<span>$object</span>, <span>$content</span><span>);
- }
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>接收视频消息</span>
- <span>private</span> <span>function</span> receiveVideo(<span>$object</span><span>)
- {
- </span><span>$content</span> = <span>array</span>("MediaId"=><span>$object</span>->MediaId, "ThumbMediaId"=><span>$object</span>->ThumbMediaId, "Title"=>"", "Description"=>""<span>);
- </span><span>$result</span> = <span>$this</span>->transmitVideo(<span>$object</span>, <span>$content</span><span>);
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>接收链接消息</span>
- <span>private</span> <span>function</span> receiveLink(<span>$object</span><span>)
- {
- </span><span>$content</span> = "你发送的是链接,标题为:".<span>$object</span>->Title.";内容为:".<span>$object</span>->Description.";链接地址为:".<span>$object</span>-><span>Url;
- </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>回复文本消息</span>
- <span>private</span> <span>function</span> transmitText(<span>$object</span>, <span>$content</span><span>)
- {
- </span><span>$xmlTpl</span> = "<span><xml>
- <tousername><!--[CDATA[%s]]--></tousername>
- <fromusername><!--[CDATA[%s]]--></fromusername>
- <createtime>%s</createtime>
- <msgtype><!--[CDATA[text]]--></msgtype>
- <content><!--[CDATA[%s]]--></content>
- </xml></span>"<span>;
- </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span>(), <span>$content</span><span>);
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>回复图片消息</span>
- <span>private</span> <span>function</span> transmitImage(<span>$object</span>, <span>$imageArray</span><span>)
- {
- </span><span>$itemTpl</span> = "<span><img>
- <mediaid><!--[CDATA[%s]]--></mediaid>
- </span>"<span>;
- </span><span>$item_str</span> = <span>sprintf</span>(<span>$itemTpl</span>, <span>$imageArray</span>['MediaId'<span>]);
- </span><span>$xmlTpl</span> = "<span><xml>
- <tousername><!--[CDATA[%s]]--></tousername>
- <fromusername><!--[CDATA[%s]]--></fromusername>
- <createtime>%s</createtime>
- <msgtype><!--[CDATA[image]]--></msgtype>
- </xml></span><span>$item_str</span><span>
- </span>"<span>;
- </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>回复语音消息</span>
- <span>private</span> <span>function</span> transmitVoice(<span>$object</span>, <span>$voiceArray</span><span>)
- {
- </span><span>$itemTpl</span> = "<span><voice>
- <mediaid><!--[CDATA[%s]]--></mediaid>
- </voice></span>"<span>;
- </span><span>$item_str</span> = <span>sprintf</span>(<span>$itemTpl</span>, <span>$voiceArray</span>['MediaId'<span>]);
- </span><span>$xmlTpl</span> = "<span><xml>
- <tousername><!--[CDATA[%s]]--></tousername>
- <fromusername><!--[CDATA[%s]]--></fromusername>
- <createtime>%s</createtime>
- <msgtype><!--[CDATA[voice]]--></msgtype>
- </xml></span><span>$item_str</span><span>
- </span>"<span>;
- </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>回复视频消息</span>
- <span>private</span> <span>function</span> transmitVideo(<span>$object</span>, <span>$videoArray</span><span>)
- {
- </span><span>$itemTpl</span> = "<span><video>
- <mediaid><!--[CDATA[%s]]--></mediaid>
- <thumbmediaid><!--[CDATA[%s]]--></thumbmediaid>
- <title><![CDATA[%s]]></title>
- <description><!--[CDATA[%s]]--></description>
- </video></span>"<span>;
- </span><span>$item_str</span> = <span>sprintf</span>(<span>$itemTpl</span>, <span>$videoArray</span>['MediaId'], <span>$videoArray</span>['ThumbMediaId'], <span>$videoArray</span>['Title'], <span>$videoArray</span>['Description'<span>]);
- </span><span>$xmlTpl</span> = "<span><xml>
- <tousername><!--[CDATA[%s]]--></tousername>
- <fromusername><!--[CDATA[%s]]--></fromusername>
- <createtime>%s</createtime>
- <msgtype><!--[CDATA[video]]--></msgtype>
- </xml></span><span>$item_str</span><span>
- </span>"<span>;
- </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>回复图文消息</span>
- <span>private</span> <span>function</span> transmitNews(<span>$object</span>, <span>$newsArray</span><span>)
- {
- </span><span>if</span>(!<span>is_array</span>(<span>$newsArray</span><span>)){
- </span><span>return</span><span>;
- }
- </span><span>$itemTpl</span> = "<span> <item>
- <title><![CDATA[%s]]></title>
- <description><!--[CDATA[%s]]--></description>
- <picurl><!--[CDATA[%s]]--></picurl>
- <url><!--[CDATA[%s]]--></url>
- </item>
- </span>"<span>;
- </span><span>$item_str</span> = ""<span>;
- </span><span>foreach</span> (<span>$newsArray</span> <span>as</span> <span>$item</span><span>){
- </span><span>$item_str</span> .= <span>sprintf</span>(<span>$itemTpl</span>, <span>$item</span>['Title'], <span>$item</span>['Description'], <span>$item</span>['PicUrl'], <span>$item</span>['Url'<span>]);
- }
- </span><span>$xmlTpl</span> = "<span><xml>
- <tousername><!--[CDATA[%s]]--></tousername>
- <fromusername><!--[CDATA[%s]]--></fromusername>
- <createtime>%s</createtime>
- <msgtype><!--[CDATA[news]]--></msgtype>
- %s
- </xml></span><span>$item_str</span><span>
- </span>"<span>;
- </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span>(), <span>count</span>(<span>$newsArray</span><span>));
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>回复音乐消息</span>
- <span>private</span> <span>function</span> transmitMusic(<span>$object</span>, <span>$musicArray</span><span>)
- {
- </span><span>$itemTpl</span> = "<span><music>
- <title><![CDATA[%s]]></title>
- <description><!--[CDATA[%s]]--></description>
- <musicurl><!--[CDATA[%s]]--></musicurl>
- <hqmusicurl><!--[CDATA[%s]]--></hqmusicurl>
- </music></span>"<span>;
- </span><span>$item_str</span> = <span>sprintf</span>(<span>$itemTpl</span>, <span>$musicArray</span>['Title'], <span>$musicArray</span>['Description'], <span>$musicArray</span>['MusicUrl'], <span>$musicArray</span>['HQMusicUrl'<span>]);
- </span><span>$xmlTpl</span> = "<span><xml>
- <tousername><!--[CDATA[%s]]--></tousername>
- <fromusername><!--[CDATA[%s]]--></fromusername>
- <createtime>%s</createtime>
- <msgtype><!--[CDATA[music]]--></msgtype>
- </xml></span><span>$item_str</span><span>
- </span>"<span>;
- </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>回复多客服消息</span>
- <span>private</span> <span>function</span> transmitService(<span>$object</span><span>)
- {
- </span><span>$xmlTpl</span> = "<span><xml>
- <tousername><!--[CDATA[%s]]--></tousername>
- <fromusername><!--[CDATA[%s]]--></fromusername>
- <createtime>%s</createtime>
- <msgtype><!--[CDATA[transfer_customer_service]]--></msgtype>
- </xml></span>"<span>;
- </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
- </span><span>return</span> <span>$result</span><span>;
- }
- </span><span>//</span><span>日志记录</span>
- <span>private</span> <span>function</span> logger(<span>$log_content</span><span>)
- {
- </span><span>if</span>(<span>isset</span>(<span>$_SERVER</span>['HTTP_APPNAME'])){ <span>//</span><span>SAE</span>
- sae_set_display_errors(<span>false</span><span>);
- sae_debug(</span><span>$log_content</span><span>);
- sae_set_display_errors(</span><span>true</span><span>);
- }</span><span>else</span> <span>if</span>(<span>$_SERVER</span>['REMOTE_ADDR'] != "127.0.0.1"){ <span>//</span><span>LOCAL</span>
- <span>$max_size</span> = 10000<span>;
- </span><span>$log_filename</span> = "log.xml"<span>;
- </span><span>if</span>(<span>file_exists</span>(<span>$log_filename</span>) and (<span>abs</span>(<span>filesize</span>(<span>$log_filename</span>)) > <span>$max_size</span>)){<span>unlink</span>(<span>$log_filename</span><span>);}
- </span><span>file_put_contents</span>(<span>$log_filename</span>, <span>date</span>('H:i:s')." ".<span>$log_content</span>."\r\n",<span> FILE_APPEND);
- }
- }
- }
- </span>?>
- <!--?<span-->php
- <span>return</span> <span>array</span><span>(
- </span>"北京北" => "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",
- "桦林" =&