当前位置:Gxlcms > PHP教程 > 微信公众平台开发尝试

微信公众平台开发尝试

时间: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的,因此只能在网上拷贝了,如有复制,纯属巧合。

  1. <!--?<span-->php
  2. <span>define</span>("TOKEN", "weixin"<span>);
  3. </span><span>Session_start</span><span>();
  4. </span><span>Session_Register</span>("kw"<span>);
  5. </span><span>$wechatObj</span> = <span>new</span><span> wechatCallbackapiTest();
  6. </span><span>require_once</span>("train.php"<span>);
  7. </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>;
  8. </span><span>if</span> (!<span>isset</span>(<span>$_GET</span>['echostr'<span>])) {
  9. </span><span>$wechatObj</span>-><span>responseMsg();
  10. }</span><span>else</span><span>{
  11. </span><span>$wechatObj</span>-><span>valid();
  12. }
  13. </span><span>class</span><span> wechatCallbackapiTest
  14. {
  15. </span><span>//</span><span>验证签名</span>
  16. <span>public</span> <span>function</span><span> valid()
  17. {
  18. </span><span>$echoStr</span> = <span>$_GET</span>["echostr"<span>];
  19. </span><span>$signature</span> = <span>$_GET</span>["signature"<span>];
  20. </span><span>$timestamp</span> = <span>$_GET</span>["timestamp"<span>];
  21. </span><span>$nonce</span> = <span>$_GET</span>["nonce"<span>];
  22. </span><span>$token</span> =<span> TOKEN;
  23. </span><span>$tmpArr</span> = <span>array</span>(<span>$token</span>, <span>$timestamp</span>, <span>$nonce</span><span>);
  24. </span><span>sort</span>(<span>$tmpArr</span><span>);
  25. </span><span>$tmpStr</span> = <span>implode</span>(<span>$tmpArr</span><span>);
  26. </span><span>$tmpStr</span> = <span>sha1</span>(<span>$tmpStr</span><span>);
  27. </span><span>if</span>(<span>$tmpStr</span> == <span>$signature</span><span>){
  28. </span><span>echo</span> <span>$echoStr</span><span>;
  29. </span><span>exit</span><span>;
  30. }
  31. }
  32. </span><span>//</span><span>响应消息</span>
  33. <span>public</span> <span>function</span><span> responseMsg()
  34. {
  35. </span><span>$postStr</span> = <span>$GLOBALS</span>["HTTP_RAW_POST_DATA"<span>];
  36. </span><span>if</span> (!<span>empty</span>(<span>$postStr</span><span>)){
  37. </span><span>$this</span>->logger("R ".<span>$postStr</span><span>);
  38. </span><span>$postObj</span> = <span>simplexml_load_string</span>(<span>$postStr</span>, 'SimpleXMLElement',<span> LIBXML_NOCDATA);
  39. </span><span>$RX_TYPE</span> = <span>trim</span>(<span>$postObj</span>-><span>MsgType);
  40. </span><span>//</span><span>消息类型分离</span>
  41. <span>switch</span> (<span>$RX_TYPE</span><span>)
  42. {
  43. </span><span>case</span> "event":
  44. <span>$result</span> = <span>$this</span>->receiveEvent(<span>$postObj</span><span>);
  45. </span><span>break</span><span>;
  46. </span><span>case</span> "text":
  47. <span>$result</span> = <span>$this</span>->receiveTulingText(<span>$postObj</span><span>);
  48. </span><span>break</span><span>;
  49. </span><span>case</span> "image":
  50. <span>$result</span> = <span>$this</span>->receiveImage(<span>$postObj</span><span>);
  51. </span><span>break</span><span>;
  52. </span><span>case</span> "location":
  53. <span>$result</span> = <span>$this</span>->receiveLocation(<span>$postObj</span><span>);
  54. </span><span>break</span><span>;
  55. </span><span>case</span> "voice":
  56. <span>$result</span> = <span>$this</span>->receiveVoice(<span>$postObj</span><span>);
  57. </span><span>break</span><span>;
  58. </span><span>case</span> "video":
  59. <span>$result</span> = <span>$this</span>->receiveVideo(<span>$postObj</span><span>);
  60. </span><span>break</span><span>;
  61. </span><span>case</span> "link":
  62. <span>$result</span> = <span>$this</span>->receiveLink(<span>$postObj</span><span>);
  63. </span><span>break</span><span>;
  64. </span><span>default</span>:
  65. <span>$result</span> = "unknown msg type: ".<span>$RX_TYPE</span><span>;
  66. </span><span>break</span><span>;
  67. }
  68. </span><span>$this</span>->logger("T ".<span>$result</span><span>);
  69. </span><span>echo</span> <span>$result</span><span>;
  70. }</span><span>else</span><span> {
  71. </span><span>echo</span> ""<span>;
  72. </span><span>exit</span><span>;
  73. }
  74. }
  75. </span><span>//</span><span>接收事件消息</span>
  76. <span>private</span> <span>function</span> receiveEvent(<span>$object</span><span>)
  77. {
  78. </span><span>$content</span> = ""<span>;
  79. </span><span>switch</span> (<span>$object</span>-><span>Event)
  80. {
  81. </span><span>case</span> "subscribe":
  82. <span>$content</span> = "欢迎关注TomSnail "<span>;
  83. </span><span>$content</span> .= (!<span>empty</span>(<span>$object</span>->EventKey))?("\n来自二维码场景 ".<span>str_replace</span>("qrscene_","",<span>$object</span>->EventKey)):""<span>;
  84. </span><span>break</span><span>;
  85. </span><span>case</span> "unsubscribe":
  86. <span>$content</span> = "取消关注"<span>;
  87. </span><span>break</span><span>;
  88. </span><span>case</span> "SCAN":
  89. <span>$content</span> = "扫描场景 ".<span>$object</span>-><span>EventKey;
  90. </span><span>break</span><span>;
  91. </span><span>case</span> "CLICK":
  92. <span>switch</span> (<span>$object</span>-><span>EventKey)
  93. {
  94. </span><span>case</span> "COMPANY":
  95. <span>$content</span> = <span>array</span><span>();
  96. </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>);
  97. </span><span>break</span><span>;
  98. </span><span>default</span>:
  99. <span>$content</span> = "点击菜单:".<span>$object</span>-><span>EventKey;
  100. </span><span>break</span><span>;
  101. }
  102. </span><span>break</span><span>;
  103. </span><span>case</span> "LOCATION":
  104. <span>$content</span> = "上传位置:纬度 ".<span>$object</span>->Latitude.";经度 ".<span>$object</span>-><span>Longitude;
  105. </span><span>break</span><span>;
  106. </span><span>case</span> "VIEW":
  107. <span>$content</span> = "跳转链接 ".<span>$object</span>-><span>EventKey;
  108. </span><span>break</span><span>;
  109. </span><span>case</span> "MASSSENDJOBFINISH":
  110. <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;
  111. </span><span>break</span><span>;
  112. </span><span>default</span>:
  113. <span>$content</span> = "receive a new event: ".<span>$object</span>-><span>Event;
  114. </span><span>break</span><span>;
  115. }
  116. </span><span>if</span>(<span>is_array</span>(<span>$content</span><span>)){
  117. </span><span>if</span> (<span>isset</span>(<span>$content</span>[0<span>])){
  118. </span><span>$result</span> = <span>$this</span>->transmitNews(<span>$object</span>, <span>$content</span><span>);
  119. }</span><span>else</span> <span>if</span> (<span>isset</span>(<span>$content</span>['MusicUrl'<span>])){
  120. </span><span>$result</span> = <span>$this</span>->transmitMusic(<span>$object</span>, <span>$content</span><span>);
  121. }
  122. }</span><span>else</span><span>{
  123. </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
  124. }
  125. </span><span>return</span> <span>$result</span><span>;
  126. }
  127. </span><span>private</span> <span>function</span> receiveTulingText(<span>$object</span><span>){
  128. </span><span>try</span><span>{
  129. </span><span>$keyword</span> = <span>trim</span>(<span>$object</span>-><span>Content);
  130. </span><span>$userid</span> = <span>trim</span>(<span>$object</span>-><span>FromUserName);
  131. </span><span>$apiKey</span> = "*******************************"<span>;
  132. </span><span>$apiURL</span> = "http://www.tuling123.com/openapi/api?key=".<span>$apiKey</span>."&info=".<span>$keyword</span>."&userid=".<span>userid;
  133. </span><span>if</span>((<span>substr_count</span>(<span>$keyword</span>,'天气')!=0)||<span>$_SESSION</span>["kw"]=="天气"){ <span>//</span><span>百度地图API</span>
  134. <span>if</span>(<span>$keyword</span>=="天气"<span>){
  135. </span><span>$_SESSION</span>["kw"]="天气"<span>;
  136. </span><span>$content</span> = "请输入城市".<span>$_SESSION</span>["kw"<span>];
  137. }</span><span>else</span><span>{
  138. </span><span>$geshu</span> = <span>substr_count</span>(<span>$keyword</span>,'天气'<span>);
  139. </span><span>if</span>(<span>$geshu</span>==0<span>){
  140. </span><span>$city</span> = <span>$keyword</span><span>;
  141. }</span><span>else</span><span>{
  142. </span><span>$t</span> = <span>explode</span>("天气",<span>$keyword</span><span>);
  143. </span><span>for</span>(<span>$i</span>=0;<span>$i</span><=<span>$geshu</span>;<span>$i</span>++<span>)
  144. {
  145. </span><span>if</span>(<span>$t</span>[<span>$i</span>]!=''<span>)
  146. {
  147. </span><span>$city</span> = <span>$t</span>[<span>$i</span><span>];
  148. </span><span>break</span><span>;
  149. }
  150. }
  151. }
  152. </span><span>$mykey</span> ="*********************"<span>;
  153. </span><span>$url</span> = "http://api.map.baidu.com/telematics/v3/weather?location=".<span>$city</span>."&output=json&ak=".<span>$mykey</span><span>;
  154. </span><span>$output</span> = <span>file_get_contents</span>(<span>$url</span><span>);
  155. </span><span>$contentStr</span> = json_decode(<span>$output</span>, <span>true</span><span>);
  156. </span><span>if</span>(<span>$contentStr</span>['status']=='success'<span>)
  157. {
  158. </span><span>$T</span>[0]['Title']=<span>$contentStr</span>['date']." ".<span>$contentStr</span>['results'][0]['currentCity']."天气"<span>;
  159. </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  160. </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  161. </span><span>if</span>(<span>is_array</span>(<span>$contentStr</span>['results'][0]['index'<span>]))
  162. {
  163. </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>];
  164. </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>
  165. <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>];
  166. }
  167. </span><span>else</span>
  168. <span>$guowai</span>=1<span>;
  169. </span><span>for</span>(<span>$i</span>=1,<span>$aaa</span>=0;<span>$i</span><=5;<span>$i</span>++<span>)
  170. {
  171. </span><span>if</span>(<span>$i</span>==2 && <span>$guowai</span>!=1<span>)
  172. </span><span>continue</span><span>;
  173. </span><span>if</span>(<span>$guowai</span>==1 && <span>$i</span>==5<span>)
  174. </span><span>continue</span><span>;
  175. </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>];
  176. </span><span>$T</span>[<span>$i</span>]['PicUrl']=<span>$contentStr</span>['results'][0]['weather_data'][<span>$aaa</span>]['dayPictureUrl'<span>];
  177. </span><span>$T</span>[<span>$i</span>]['Url']=<span>$contentStr</span>['results'][0]['weather_data'][<span>$aaa</span>]['dayPictureUrl'<span>];
  178. </span><span>$aaa</span>++<span>;
  179. }
  180. </span><span>$content</span> = <span>$T</span><span>;
  181. }
  182. }
  183. }</span><span>else</span> <span>if</span>(<span>substr_count</span>(<span>$keyword</span>,'火车')!=0 && <span>$keyword</span>!='火车'){<span>//</span><span>12306</span>
  184. <span>$geshu</span> = <span>substr_count</span>(<span>$keyword</span>,'火车:'<span>);
  185. </span><span>$k</span> = <span>str_replace</span>('火车 ', "", <span>$keyword</span><span>);
  186. </span><span>$t</span> = <span>explode</span>(" ",<span>$k</span><span>);
  187. </span><span>$startstaion</span> = <span>$t</span>[0<span>];
  188. </span><span>$endstation</span> = <span>$t</span>[1<span>];
  189. </span><span>$date</span> =<span>$t</span>[2<span>];
  190. </span><span>if</span>(<span>$date</span>==<span>null</span><span>){
  191. </span><span>$date</span> = <span>date</span>("Y-m-d",<span>time</span><span>());
  192. }
  193. </span><span>if</span>(<span>substr_count</span>(<span>$date</span>,'-')==0<span>){
  194. </span><span>$date</span> = <span>date</span>("Y-m",<span>time</span>())."-".<span>$date</span><span>;
  195. }
  196. </span><span>$time</span> =<span>$t</span>[3<span>];
  197. </span><span>if</span>(<span>$time</span>==<span>null</span><span>){
  198. </span><span>$time</span> = "00:00"<span>;
  199. }
  200. </span><span>if</span>(<span>substr_count</span>(<span>$time</span>,':')==0<span>){
  201. </span><span>$time</span> = <span>$time</span>.":00"<span>;
  202. }
  203. </span><span>$data</span> = gettrain(<span>$startstaion</span>,<span>$endstation</span>,<span>$date</span>,<span>$time</span><span>);
  204. </span><span>$str</span>=""<span>;
  205. </span><span>$T</span>[0]['Title']=<span>$startstaion</span>."到".<span>$endstation</span>." ".<span>$date</span>." ".<span>$time</span>."以后10列火车信息"<span>;
  206. </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  207. </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  208. </span><span>$count</span> = 1<span>;
  209. </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
  210. </span><span>$str</span>=<span>$count</span>." "<span>;
  211. </span><span>$str</span>.="火车列次:{<span>$data</span>[<span>$key</span>]['station_train_code']}\n"<span>;
  212. </span><span>$str</span>.="始发站:{<span>$data</span>[<span>$key</span>]['start_station_name']},终点站:{<span>$data</span>[<span>$key</span>]['end_station_name']}\n"<span>;
  213. </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>;
  214. </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>;
  215. </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>;
  216. </span><span>$count</span> = <span>$count</span>+1<span>;
  217. </span><span>$T</span>[<span>$count</span>]['Title'] = <span>$str</span><span>;
  218. </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>
  219. <span>$T</span>[<span>$count</span>]['Url'] = "https://kyfw.12306.cn/otn/login/init"<span>;
  220. </span><span>if</span>(<span>$count</span>==10<span>){
  221. </span><span>break</span><span>;}
  222. }
  223. </span><span>$content</span> = <span>$T</span><span>;
  224. }</span><span>else</span>{<span>//</span><span>图灵机器人</span>
  225. <span>$file_contents</span> = <span>file_get_contents</span>(<span>$apiURL</span><span>);
  226. </span><span>$file_contents</span> = json_decode(<span>$file_contents</span>,<span>true</span><span>);
  227. </span><span>$code</span> = <span>$file_contents</span>["code"<span>];
  228. </span><span>if</span>(<span>$code</span>==100000<span>){
  229. </span><span>$content</span> = <span>$file_contents</span>["text"<span>];
  230. }</span><span>else</span> <span>if</span>(<span>$code</span>==200000<span>){
  231. </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
  232. </span><span>//</span><span>$T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; </span>
  233. <span>$T</span>[0]['Url']=<span>$file_contents</span>["url"<span>];
  234. </span><span>$content</span> = <span>$T</span><span>;
  235. }</span><span>else</span> <span>if</span>(<span>$code</span>==302000<span>){
  236. </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
  237. </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  238. </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  239. </span><span>$data</span> = <span>$file_contents</span>["list"<span>];
  240. </span><span>$count</span> = 1<span>;
  241. </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
  242. </span><span>$T</span>[<span>$count</span>]['Title']=<span>$data</span>[<span>$key</span>]["article"<span>];
  243. </span><span>$T</span>[<span>$count</span>]['PicUrl']=<span>$data</span>[<span>$key</span>]["icon"<span>];
  244. </span><span>$T</span>[<span>$count</span>]['Url']=<span>$data</span>[<span>$key</span>]["detailurl"<span>];
  245. </span><span>$count</span>++<span>;
  246. }
  247. </span><span>$content</span> = <span>$T</span><span>;
  248. }</span><span>else</span> <span>if</span>(<span>$code</span>==305000<span>){
  249. </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
  250. </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  251. </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  252. </span><span>$data</span> = <span>$file_contents</span>["list"<span>];
  253. </span><span>$count</span> = 1<span>;
  254. </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
  255. </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>];
  256. </span><span>$T</span>[<span>$count</span>]['PicUrl']=<span>$data</span>[<span>$key</span>]["icon"<span>];
  257. </span><span>$T</span>[<span>$count</span>]['Url']=<span>$data</span>[<span>$key</span>]["detailurl"<span>];
  258. </span><span>$count</span>++<span>;
  259. </span><span>if</span>(<span>$count</span>==10<span>){
  260. </span><span>break</span><span>;
  261. }
  262. }
  263. </span><span>$content</span> = <span>$T</span><span>;
  264. }</span><span>else</span> <span>if</span>(<span>$code</span>==306000<span>){
  265. </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
  266. </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  267. </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  268. </span><span>$data</span> = <span>$file_contents</span>["list"<span>];
  269. </span><span>$count</span> = 1<span>;
  270. </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
  271. </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>];
  272. </span><span>$T</span>[<span>$count</span>]['PicUrl']=<span>$data</span>[<span>$key</span>]["icon"<span>];
  273. </span><span>$T</span>[<span>$count</span>]['Url']=<span>$data</span>[<span>$key</span>]["detailurl"<span>];
  274. </span><span>$count</span>++<span>;
  275. }
  276. </span><span>$content</span> = <span>$T</span><span>;
  277. }</span><span>else</span> <span>if</span>(<span>$code</span>==308000<span>){
  278. </span><span>$T</span>[0]['Title']=<span>$file_contents</span>["text"<span>];
  279. </span><span>$T</span>[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  280. </span><span>$T</span>[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"<span>;
  281. </span><span>$data</span> = <span>$file_contents</span>["list"<span>];
  282. </span><span>$count</span> = 1<span>;
  283. </span><span>foreach</span>(<span>$data</span> <span>as</span> <span>$key</span> =><span>$value</span><span>){
  284. </span><span>$T</span>[<span>$count</span>]['Title']="名称".<span>$data</span>[<span>$key</span>]["name"]."详情".<span>$data</span>[<span>$key</span>]["info"<span>];
  285. </span><span>$T</span>[<span>$count</span>]['PicUrl']=<span>$data</span>[<span>$key</span>]["icon"<span>];
  286. </span><span>$T</span>[<span>$count</span>]['Url']=<span>$data</span>[<span>$key</span>]["detailurl"<span>];
  287. </span><span>$count</span>++<span>;
  288. }
  289. </span><span>$content</span> = <span>$T</span><span>;
  290. }</span><span>else</span><span>{
  291. </span><span>$content</span> = <span>$file_contents</span>["text"<span>];
  292. }
  293. }
  294. </span><span>if</span>(<span>is_array</span>(<span>$content</span><span>)){
  295. </span><span>if</span> (<span>isset</span>(<span>$content</span>[0]['PicUrl'<span>])){
  296. </span><span>$result</span> = <span>$this</span>->transmitNews(<span>$object</span>, <span>$content</span><span>);
  297. }</span><span>else</span> <span>if</span> (<span>isset</span>(<span>$content</span>['MusicUrl'<span>])){
  298. </span><span>$result</span> = <span>$this</span>->transmitMusic(<span>$object</span>, <span>$content</span><span>);
  299. }
  300. }</span><span>else</span><span>{
  301. </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
  302. }
  303. }</span><span>catch</span>(<span>Exception</span> <span>$e</span><span>){
  304. </span><span>$content</span>=<span>$e</span>-><span>getMessage();
  305. </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
  306. }
  307. </span><span>return</span> <span>$result</span><span>;
  308. }
  309. </span><span>//</span><span>接收图片消息</span>
  310. <span>private</span> <span>function</span> receiveImage(<span>$object</span><span>)
  311. {
  312. </span><span>$content</span> = <span>array</span>("MediaId"=><span>$object</span>-><span>MediaId);
  313. </span><span>$result</span> = <span>$this</span>->transmitImage(<span>$object</span>, <span>$content</span><span>);
  314. </span><span>return</span> <span>$result</span><span>;
  315. }
  316. </span><span>//</span><span>接收位置消息</span>
  317. <span>private</span> <span>function</span> receiveLocation(<span>$object</span><span>)
  318. {
  319. </span><span>$content</span> = "你发送的是位置,纬度为:".<span>$object</span>->Location_X.";经度为:".<span>$object</span>->Location_Y.";缩放级别为:".<span>$object</span>->Scale.";位置为:".<span>$object</span>-><span>Label;
  320. </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
  321. </span><span>return</span> <span>$result</span><span>;
  322. }
  323. </span><span>//</span><span>接收语音消息</span>
  324. <span>private</span> <span>function</span> receiveVoice(<span>$object</span><span>)
  325. {
  326. </span><span>if</span> (<span>isset</span>(<span>$object</span>->Recognition) && !<span>empty</span>(<span>$object</span>-><span>Recognition)){
  327. </span><span>$content</span> = "你刚才说的是:".<span>$object</span>-><span>Recognition;
  328. </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
  329. }</span><span>else</span><span>{
  330. </span><span>$content</span> = <span>array</span>("MediaId"=><span>$object</span>-><span>MediaId);
  331. </span><span>$result</span> = <span>$this</span>->transmitVoice(<span>$object</span>, <span>$content</span><span>);
  332. }
  333. </span><span>return</span> <span>$result</span><span>;
  334. }
  335. </span><span>//</span><span>接收视频消息</span>
  336. <span>private</span> <span>function</span> receiveVideo(<span>$object</span><span>)
  337. {
  338. </span><span>$content</span> = <span>array</span>("MediaId"=><span>$object</span>->MediaId, "ThumbMediaId"=><span>$object</span>->ThumbMediaId, "Title"=>"", "Description"=>""<span>);
  339. </span><span>$result</span> = <span>$this</span>->transmitVideo(<span>$object</span>, <span>$content</span><span>);
  340. </span><span>return</span> <span>$result</span><span>;
  341. }
  342. </span><span>//</span><span>接收链接消息</span>
  343. <span>private</span> <span>function</span> receiveLink(<span>$object</span><span>)
  344. {
  345. </span><span>$content</span> = "你发送的是链接,标题为:".<span>$object</span>->Title.";内容为:".<span>$object</span>->Description.";链接地址为:".<span>$object</span>-><span>Url;
  346. </span><span>$result</span> = <span>$this</span>->transmitText(<span>$object</span>, <span>$content</span><span>);
  347. </span><span>return</span> <span>$result</span><span>;
  348. }
  349. </span><span>//</span><span>回复文本消息</span>
  350. <span>private</span> <span>function</span> transmitText(<span>$object</span>, <span>$content</span><span>)
  351. {
  352. </span><span>$xmlTpl</span> = "<span><xml>
  353. <tousername><!--[CDATA[%s]]--></tousername>
  354. <fromusername><!--[CDATA[%s]]--></fromusername>
  355. <createtime>%s</createtime>
  356. <msgtype><!--[CDATA[text]]--></msgtype>
  357. <content><!--[CDATA[%s]]--></content>
  358. </xml></span>"<span>;
  359. </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>);
  360. </span><span>return</span> <span>$result</span><span>;
  361. }
  362. </span><span>//</span><span>回复图片消息</span>
  363. <span>private</span> <span>function</span> transmitImage(<span>$object</span>, <span>$imageArray</span><span>)
  364. {
  365. </span><span>$itemTpl</span> = "<span><img>
  366. <mediaid><!--[CDATA[%s]]--></mediaid>
  367. </span>"<span>;
  368. </span><span>$item_str</span> = <span>sprintf</span>(<span>$itemTpl</span>, <span>$imageArray</span>['MediaId'<span>]);
  369. </span><span>$xmlTpl</span> = "<span><xml>
  370. <tousername><!--[CDATA[%s]]--></tousername>
  371. <fromusername><!--[CDATA[%s]]--></fromusername>
  372. <createtime>%s</createtime>
  373. <msgtype><!--[CDATA[image]]--></msgtype>
  374. </xml></span><span>$item_str</span><span>
  375. </span>"<span>;
  376. </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
  377. </span><span>return</span> <span>$result</span><span>;
  378. }
  379. </span><span>//</span><span>回复语音消息</span>
  380. <span>private</span> <span>function</span> transmitVoice(<span>$object</span>, <span>$voiceArray</span><span>)
  381. {
  382. </span><span>$itemTpl</span> = "<span><voice>
  383. <mediaid><!--[CDATA[%s]]--></mediaid>
  384. </voice></span>"<span>;
  385. </span><span>$item_str</span> = <span>sprintf</span>(<span>$itemTpl</span>, <span>$voiceArray</span>['MediaId'<span>]);
  386. </span><span>$xmlTpl</span> = "<span><xml>
  387. <tousername><!--[CDATA[%s]]--></tousername>
  388. <fromusername><!--[CDATA[%s]]--></fromusername>
  389. <createtime>%s</createtime>
  390. <msgtype><!--[CDATA[voice]]--></msgtype>
  391. </xml></span><span>$item_str</span><span>
  392. </span>"<span>;
  393. </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
  394. </span><span>return</span> <span>$result</span><span>;
  395. }
  396. </span><span>//</span><span>回复视频消息</span>
  397. <span>private</span> <span>function</span> transmitVideo(<span>$object</span>, <span>$videoArray</span><span>)
  398. {
  399. </span><span>$itemTpl</span> = "<span><video>
  400. <mediaid><!--[CDATA[%s]]--></mediaid>
  401. <thumbmediaid><!--[CDATA[%s]]--></thumbmediaid>
  402. <title><![CDATA[%s]]></title>
  403. <description><!--[CDATA[%s]]--></description>
  404. </video></span>"<span>;
  405. </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>]);
  406. </span><span>$xmlTpl</span> = "<span><xml>
  407. <tousername><!--[CDATA[%s]]--></tousername>
  408. <fromusername><!--[CDATA[%s]]--></fromusername>
  409. <createtime>%s</createtime>
  410. <msgtype><!--[CDATA[video]]--></msgtype>
  411. </xml></span><span>$item_str</span><span>
  412. </span>"<span>;
  413. </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
  414. </span><span>return</span> <span>$result</span><span>;
  415. }
  416. </span><span>//</span><span>回复图文消息</span>
  417. <span>private</span> <span>function</span> transmitNews(<span>$object</span>, <span>$newsArray</span><span>)
  418. {
  419. </span><span>if</span>(!<span>is_array</span>(<span>$newsArray</span><span>)){
  420. </span><span>return</span><span>;
  421. }
  422. </span><span>$itemTpl</span> = "<span> <item>
  423. <title><![CDATA[%s]]></title>
  424. <description><!--[CDATA[%s]]--></description>
  425. <picurl><!--[CDATA[%s]]--></picurl>
  426. <url><!--[CDATA[%s]]--></url>
  427. </item>
  428. </span>"<span>;
  429. </span><span>$item_str</span> = ""<span>;
  430. </span><span>foreach</span> (<span>$newsArray</span> <span>as</span> <span>$item</span><span>){
  431. </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>]);
  432. }
  433. </span><span>$xmlTpl</span> = "<span><xml>
  434. <tousername><!--[CDATA[%s]]--></tousername>
  435. <fromusername><!--[CDATA[%s]]--></fromusername>
  436. <createtime>%s</createtime>
  437. <msgtype><!--[CDATA[news]]--></msgtype>
  438. %s
  439. </xml></span><span>$item_str</span><span>
  440. </span>"<span>;
  441. </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>));
  442. </span><span>return</span> <span>$result</span><span>;
  443. }
  444. </span><span>//</span><span>回复音乐消息</span>
  445. <span>private</span> <span>function</span> transmitMusic(<span>$object</span>, <span>$musicArray</span><span>)
  446. {
  447. </span><span>$itemTpl</span> = "<span><music>
  448. <title><![CDATA[%s]]></title>
  449. <description><!--[CDATA[%s]]--></description>
  450. <musicurl><!--[CDATA[%s]]--></musicurl>
  451. <hqmusicurl><!--[CDATA[%s]]--></hqmusicurl>
  452. </music></span>"<span>;
  453. </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>]);
  454. </span><span>$xmlTpl</span> = "<span><xml>
  455. <tousername><!--[CDATA[%s]]--></tousername>
  456. <fromusername><!--[CDATA[%s]]--></fromusername>
  457. <createtime>%s</createtime>
  458. <msgtype><!--[CDATA[music]]--></msgtype>
  459. </xml></span><span>$item_str</span><span>
  460. </span>"<span>;
  461. </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
  462. </span><span>return</span> <span>$result</span><span>;
  463. }
  464. </span><span>//</span><span>回复多客服消息</span>
  465. <span>private</span> <span>function</span> transmitService(<span>$object</span><span>)
  466. {
  467. </span><span>$xmlTpl</span> = "<span><xml>
  468. <tousername><!--[CDATA[%s]]--></tousername>
  469. <fromusername><!--[CDATA[%s]]--></fromusername>
  470. <createtime>%s</createtime>
  471. <msgtype><!--[CDATA[transfer_customer_service]]--></msgtype>
  472. </xml></span>"<span>;
  473. </span><span>$result</span> = <span>sprintf</span>(<span>$xmlTpl</span>, <span>$object</span>->FromUserName, <span>$object</span>->ToUserName, <span>time</span><span>());
  474. </span><span>return</span> <span>$result</span><span>;
  475. }
  476. </span><span>//</span><span>日志记录</span>
  477. <span>private</span> <span>function</span> logger(<span>$log_content</span><span>)
  478. {
  479. </span><span>if</span>(<span>isset</span>(<span>$_SERVER</span>['HTTP_APPNAME'])){ <span>//</span><span>SAE</span>
  480. sae_set_display_errors(<span>false</span><span>);
  481. sae_debug(</span><span>$log_content</span><span>);
  482. sae_set_display_errors(</span><span>true</span><span>);
  483. }</span><span>else</span> <span>if</span>(<span>$_SERVER</span>['REMOTE_ADDR'] != "127.0.0.1"){ <span>//</span><span>LOCAL</span>
  484. <span>$max_size</span> = 10000<span>;
  485. </span><span>$log_filename</span> = "log.xml"<span>;
  486. </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>);}
  487. </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);
  488. }
  489. }
  490. }
  491. </span>?>

View Code

  1. <!--?<span-->php
  2. <span>return</span> <span>array</span><span>(
  3. </span>"北京北" => "VAP",
  4. "北京东" => "BOP",
  5. "北京" => "BJP",
  6. "北京南" => "VNP",
  7. "北京西" => "BXP",
  8. "重庆北" => "CUW",
  9. "重庆" => "CQW",
  10. "重庆南" => "CRW",
  11. "长春" => "CCT",
  12. "长春南" => "CET",
  13. "长春西" => "CRT",
  14. "成都东" => "ICW",
  15. "成都南" => "CNW",
  16. "成都" => "CDW",
  17. "长沙" => "CSQ",
  18. "长沙南" => "CWQ",
  19. "阿尔山" => "ART",
  20. "安康" => "AKY",
  21. "阿克苏" => "ASR",
  22. "阿里河" => "AHX",
  23. "阿拉山口" => "AKR",
  24. "安平" => "APT",
  25. "安庆" => "AQH",
  26. "安顺" => "ASW",
  27. "鞍山" => "AST",
  28. "安阳" => "AYF",
  29. "北安" => "BAB",
  30. "蚌埠" => "BBH",
  31. "白城" => "BCT",
  32. "北海" => "BHZ",
  33. "白河" => "BEL",
  34. "白涧" => "BAP",
  35. "宝鸡" => "BJY",
  36. "滨江" => "BJB",
  37. "博克图" => "BKX",
  38. "百色" => "BIZ",
  39. "白山市" => "HJL",
  40. "北台" => "BTT",
  41. "包头东" => "BDC",
  42. "包头" => "BTC",
  43. "北屯市" => "BXR",
  44. "本溪" => "BXT",
  45. "白云鄂博" => "BEC",
  46. "白银西" => "BXJ",
  47. "亳州" => "BZH",
  48. "赤壁" => "CBN",
  49. "常德" => "VGQ",
  50. "承德" => "CDP",
  51. "长甸" => "CDT",
  52. "赤峰" => "CFD",
  53. "茶陵" => "CDG",
  54. "苍南" => "CEH",
  55. "昌平" => "CPP",
  56. "崇仁" => "CRG",
  57. "昌图" => "CTT",
  58. "长汀镇" => "CDB",
  59. "崇信" => "CIJ",
  60. "曹县" => "CXK",
  61. "楚雄" => "COM",
  62. "陈相屯" => "CXT",
  63. "长治北" => "CBF",
  64. "长征" => "CZJ",
  65. "池州" => "IYH",
  66. "常州" => "CZH",
  67. "郴州" => "CZQ",
  68. "长治" => "CZF",
  69. "沧州" => "COP",
  70. "崇左" => "CZZ",
  71. "大安北" => "RNT",
  72. "大成" => "DCT",
  73. "丹东" => "DUT",
  74. "东方红" => "DFB",
  75. "东莞东" => "DMQ",
  76. "大虎山" => "DHD",
  77. "敦煌" => "DHJ",
  78. "敦化" => "DHL",
  79. "德惠" => "DHT",
  80. "东京城" => "DJB",
  81. "大涧" => "DFP",
  82. "都江堰" => "DDW",
  83. "大连北" => "DFT",
  84. "大理" => "DKM",
  85. "大连" => "DLT",
  86. "定南" => "DNG",
  87. "大庆" => "DZX",
  88. "东胜" => "DOC",
  89. "大石桥" => "DQT",
  90. "大同" => "DTV",
  91. "东营" => "DPK",
  92. "大杨树" => "DUX",
  93. "都匀" => "RYW",
  94. "邓州" => "DOF",
  95. "达州" => "RXW",
  96. "德州" => "DZP",
  97. "额济纳" => "EJC",
  98. "二连" => "RLC",
  99. "恩施" => "ESN",
  100. "昂昂溪" => "AAX",
  101. "阿城" => "ACB",
  102. "安达" => "ADX",
  103. "安定" => "ADP",
  104. "安广" => "AGT",
  105. "艾河" => "AHP",
  106. "安化" => "PKQ",
  107. "艾家村" => "AJJ",
  108. "鳌江" => "ARH",
  109. "安家" => "AJB",
  110. "阿金" => "AJD",
  111. "阿克陶" => "AER",
  112. "安口窑" => "AYY",
  113. "敖力布告" => "ALD",
  114. "安龙" => "AUZ",
  115. "阿龙山" => "ASX",
  116. "安陆" => "ALN",
  117. "阿木尔" => "JTX",
  118. "阿南庄" => "AZM",
  119. "安庆西" => "APH",
  120. "鞍山西" => "AXT",
  121. "安塘" => "ATV",
  122. "安亭北" => "ASH",
  123. "阿图什" => "ATR",
  124. "安图" => "ATL",
  125. "安溪" => "AXS",
  126. "博鳌" => "BWQ",
  127. "白壁关" => "BGV",
  128. "蚌埠南" => "BMH",
  129. "巴楚" => "BCR",
  130. "板城" => "BUP",
  131. "北戴河" => "BEP",
  132. "保定" => "BDP",
  133. "宝坻" => "BPP",
  134. "八达岭" => "ILP",
  135. "巴东" => "BNN",
  136. "柏果" => "BGM",
  137. "布海" => "BUT",
  138. "白河东" => "BIY",
  139. "贲红" => "BVC",
  140. "宝华山" => "BWH",
  141. "白河县" => "BEY",
  142. "白芨沟" => "BJJ",
  143. "碧鸡关" => "BJM",
  144. "北滘" => "IBQ",
  145. "碧江" => "BLQ",
  146. "白鸡坡" => "BBM",
  147. "笔架山" => "BSB",
  148. "八角台" => "BTD",
  149. "保康" => "BKD",
  150. "白奎堡" => "BKB",
  151. "白狼" => "BAT",
  152. "百浪" => "BRZ",
  153. "博乐" => "BOR",
  154. "宝拉格" => "BQC",
  155. "巴林" => "BLX",
  156. "宝林" => "BNB",
  157. "北流" => "BOZ",
  158. "勃利" => "BLB",
  159. "布列开" => "BLR",
  160. "宝龙山" => "BND",
  161. "八面城" => "BMD",
  162. "班猫箐" => "BNM",
  163. "八面通" => "BMB",
  164. "北马圈子" => "BRP",
  165. "北票南" => "RPD",
  166. "白旗" => "BQP",
  167. "宝泉岭" => "BQB",
  168. "白泉" => "BQL",
  169. "白沙" => "BSW",
  170. "巴山" => "BAY",
  171. "白水江" => "BSY",
  172. "白沙坡" => "BPM",
  173. "白石山" => "BAL",
  174. "白水镇" => "BUM",
  175. "坂田" => "BTQ",
  176. "泊头" => "BZP",
  177. "北屯" => "BYP",
  178. "本溪湖" => "BHT",
  179. "博兴" => "BXK",
  180. "八仙筒" => "VXD",
  181. "白音察干" => "BYC",
  182. "背荫河" => "BYB",
  183. "北营" => "BIV",
  184. "巴彦高勒" => "BAC",
  185. "白音他拉" => "BID",
  186. "鲅鱼圈" => "BYT",
  187. "白银市" => "BNJ",
  188. "白音胡硕" => "BCD",
  189. "巴中" => "IEW",
  190. "霸州" => "RMP",
  191. "北宅" => "BVP",
  192. "赤壁北" => "CIN",
  193. "查布嘎" => "CBC",
  194. "长城" => "CEJ",
  195. "长冲" => "CCM",
  196. "承德东" => "CCP",
  197. "赤峰西" => "CID",
  198. "嵯岗" => "CAX",
  199. "柴岗" => "CGT",
  200. "长葛" => "CEF",
  201. "柴沟堡" => "CGV",
  202. "城固" => "CGY",
  203. "陈官营" => "CAJ",
  204. "成高子" => "CZB",
  205. "草海" => "WBW",
  206. "柴河" => "CHB",
  207. "册亨" => "CHZ",
  208. "草河口" => "CKT",
  209. "崔黄口" => "CHP",
  210. "巢湖" => "CIH",
  211. "蔡家沟" => "CJT",
  212. "成吉思汗" => "CJX",
  213. "岔江" => "CAM",
  214. "蔡家坡" => "CJY",
  215. "沧口" => "CKK",
  216. "昌乐" => "CLK",
  217. "超梁沟" => "CYP",
  218. "慈利" => "CUQ",
  219. "昌黎" => "CLP",
  220. "长岭子" => "CLT",
  221. "晨明" => "CMB",
  222. "长农" => "CNJ",
  223. "昌平北" => "VBP",
  224. "长坡岭" => "CPM",
  225. "辰清" => "CQB",
  226. "楚山" => "CSB",
  227. "长寿" => "EFW",
  228. "磁山" => "CSP",
  229. "苍石" => "CST",
  230. "草市" => "CSL",
  231. "察素齐" => "CSC",
  232. "长山屯" => "CVT",
  233. "长汀" => "CES",
  234. "昌图西" => "CPT",
  235. "春湾" => "CQQ",
  236. "磁县" => "CIP",
  237. "岑溪" => "CNZ",
  238. "辰溪" => "CXQ",
  239. "磁西" => "CRP",
  240. "长兴南" => "CFH",
  241. "磁窑" => "CYK",
  242. "朝阳" => "CYD",
  243. "春阳" => "CAL",
  244. "城阳" => "CEK",
  245. "创业村" => "CEX",
  246. "朝阳川" => "CYL",
  247. "朝阳地" => "CDD",
  248. "长垣" => "CYF",
  249. "朝阳镇" => "CZL",
  250. "滁州北" => "CUH",
  251. "常州北" => "ESH",
  252. "滁州" => "CXH",
  253. "潮州" => "CKQ",
  254. "常庄" => "CVK",
  255. "曹子里" => "CFP",
  256. "车转湾" => "CWM",
  257. "郴州西" => "ICQ",
  258. "沧州西" => "CBP",
  259. "德安" => "DAG",
  260. "大安" => "RAT",
  261. "东安" => "DAZ",
  262. "大坝" => "DBJ",
  263. "大板" => "DBC",
  264. "大巴" => "DBD",
  265. "到保" => "RBT",
  266. "定边" => "DYJ",
  267. "东边井" => "DBB",
  268. "德伯斯" => "RDT",
  269. "打柴沟" => "DGJ",
  270. "德昌" => "DVW",
  271. "滴道" => "DDB",
  272. "大德" => "DEM",
  273. "大磴沟" => "DKJ",
  274. "刀尔登" => "DRD",
  275. "得耳布尔" => "DRX",
  276. "东方" => "UFQ",
  277. "丹凤" => "DGY",
  278. "东丰" => "DIL",
  279. "都格" => "DMM",
  280. "大官屯" => "DTT",
  281. "大关" => "RGW",
  282. "东光" => "DGP",
  283. "东莞" => "DAQ",
  284. "东海" => "DHB",
  285. "大灰厂" => "DHP",
  286. "大红旗" => "DQD",
  287. "东海县" => "DQH",
  288. "德惠西" => "DXT",
  289. "达家沟" => "DJT",
  290. "东津" => "DKB",
  291. "杜家" => "DJL",
  292. "大旧庄" => "DJM",
  293. "大口屯" => "DKP",
  294. "东来" => "RVD",
  295. "德令哈" => "DHO",
  296. "大陆号" => "DLC",
  297. "带岭" => "DLB",
  298. "大林" => "DLD",
  299. "达拉特旗" => "DIC",
  300. "独立屯" => "DTX",
  301. "豆罗" => "DLV",
  302. "达拉特西" => "DNC",
  303. "东明村" => "DMD",
  304. "洞庙河" => "DEP",
  305. "东明县" => "DNF",
  306. "大拟" => "DNZ",
  307. "大平房" => "DPD",
  308. "大盘石" => "RPP",
  309. "大埔" => "DPI",
  310. "大堡" => "DVT",
  311. "大其拉哈" => "DQX",
  312. "道清" => "DML",
  313. "对青山" => "DQB",
  314. "德清西" => "MOH",
  315. "东升" => "DRQ",
  316. "独山" => "RWW",
  317. "砀山" => "DKH",
  318. "登沙河" => "DWT",
  319. "读书铺" => "DPM",
  320. "大石头" => "DSL",
  321. "大石寨" => "RZT",
  322. "东台" => "DBH",
  323. "定陶" => "DQK",
  324. "灯塔" => "DGT",
  325. "大田边" => "DBM",
  326. "东通化" => "DTL",
  327. "丹徒" => "RUH",
  328. "大屯" => "DNT",
  329. "东湾" => "DRJ",
  330. "大武口" => "DFJ",
  331. "低窝铺" => "DWJ",
  332. "大王滩" => "DZZ",
  333. "大湾子" => "DFM",
  334. "大兴沟" => "DXL",
  335. "大兴" => "DXX",
  336. "定西" => "DSJ",
  337. "甸心" => "DXM",
  338. "东乡" => "DXG",
  339. "代县" => "DKV",
  340. "定襄" => "DXV",
  341. "东戌" => "RXP",
  342. "东辛庄" => "DXD",
  343. "丹阳" => "DYH",
  344. "大雁" => "DYX",
  345. "德阳" => "DYW",
  346. "当阳" => "DYN",
  347. "丹阳北" => "EXH",
  348. "大英东" => "IAW",
  349. "东淤地" => "DBV",
  350. "大营" => "DYV",
  351. "定远" => "EWH",
  352. "岱岳" => "RYV",
  353. "大元" => "DYZ",
  354. "大营镇" => "DJP",
  355. "大营子" => "DZD",
  356. "大战场" => "DTJ",
  357. "德州东" => "DIP",
  358. "低庄" => "DVQ",
  359. "东镇" => "DNV",
  360. "道州" => "DFZ",
  361. "东至" => "DCH",
  362. "东庄" => "DZV",
  363. "兑镇" => "DWV",
  364. "豆庄" => "ROP",
  365. "定州" => "DXP",
  366. "大竹园" => "DZY",
  367. "大杖子" => "DAP",
  368. "豆张庄" => "RZP",
  369. "峨边" => "EBW",
  370. "二道沟门" => "RDP",
  371. "二道湾" => "RDX",
  372. "二龙" => "RLD",
  373. "二龙山屯" => "ELA",
  374. "峨眉" => "EMW",
  375. "二密河" => "RML",
  376. "二营" => "RYJ",
  377. "鄂州" => "ECN",
  378. "安阳东" => "ADF",
  379. "保定东" => "BMP",
  380. "长阳" => "CYN",
  381. "东二道河" => "DRB",
  382. "大苴" => "DIM",
  383. "大青沟" => "DSD",
  384. "定州东" => "DOP",
  385. "福州" => "FZS",
  386. "福州南" => "FYS",
  387. "贵阳" => "GIW",
  388. "广州北" => "GBQ",
  389. "广州东" => "GGQ",
  390. "广州" => "GZQ",
  391. "广州南" => "IZQ",
  392. "哈尔滨" => "HBB",
  393. "哈尔滨东" => "VBB",
  394. "哈尔滨西" => "VAB",
  395. "合肥" => "HFH",
  396. "合肥西" => "HTH",
  397. "呼和浩特东" => "NDC",
  398. "呼和浩特" => "HHC",
  399. "海口东" => "HMQ",
  400. "海口" => "VUQ",
  401. "杭州" => "HZH",
  402. "杭州南" => "XHH",
  403. "济南" => "JNK",
  404. "济南东" => "JAK",
  405. "济南西" => "JGK",
  406. "防城港" => "FEZ",
  407. "福鼎" => "FES",
  408. "风陵渡" => "FLV",
  409. "涪陵" => "FLW",
  410. "富拉尔基" => "FRX",
  411. "抚顺北" => "FET",
  412. "佛山" => "FSQ",
  413. "阜新" => "FXD",
  414. "阜阳" => "FYH",
  415. "格尔木" => "GRO",
  416. "广汉" => "GHW",
  417. "古交" => "GJV",
  418. "桂林北" => "GBZ",
  419. "古莲" => "GRX",
  420. "桂林" => "GLZ",
  421. "固始" => "GXN",
  422. "广水" => "GSN",
  423. "干塘" => "GNJ",
  424. "广元" => "GYW",
  425. "赣州" => "GZG",
  426. "公主岭" => "GLT",
  427. "公主岭南" => "GBT",
  428. "淮安" => "AUH",
  429. "鹤北" => "HMB",
  430. "淮北" => "HRH",
  431. "淮滨" => "HVN",
  432. "河边" => "HBV",
  433. "潢川" => "KCN",
  434. "韩城" => "HCY",
  435. "邯郸" => "HDP",
  436. "横道河子" => "HDB",
  437. "鹤岗" => "HGB",
  438. "皇姑屯" => "HTT",
  439. "红果" => "HEM",
  440. "黑河" => "HJB",
  441. "怀化" => "HHQ",
  442. "汉口" => "HKN",
  443. "葫芦岛" => "HLD",
  444. "海拉尔" => "HRX",
  445. "霍林郭勒" => "HWD",
  446. "海伦" => "HLB",
  447. "侯马" => "HMV",
  448. "哈密" => "HMR",
  449. "淮南" => "HAH",
  450. "桦南" => "HNB",
  451. "海宁西" => "EUH",
  452. "鹤庆" => "HQM",
  453. "怀柔北" => "HBP",
  454. "怀柔" => "HRP",
  455. "黄石东" => "OSN",
  456. "华山" => "HSY",
  457. "黄石" => "HSN",
  458. "黄山" => "HKH",
  459. "衡水" => "HSP",
  460. "衡阳" => "HYQ",
  461. "菏泽" => "HIK",
  462. "贺州" => "HXZ",
  463. "汉中" => "HOY",
  464. "惠州" => "HCQ",
  465. "吉安" => "VAG",
  466. "集安" => "JAL",
  467. "江边村" => "JBG",
  468. "晋城" => "JCF",
  469. "金城江" => "JJZ",
  470. "景德镇" => "JCG",
  471. "嘉峰" => "JFF",
  472. "加格达奇" => "JGX",
  473. "井冈山" => "JGG",
  474. "蛟河" => "JHL",
  475. "金华南" => "RNH",
  476. "金华西" => "JBH",
  477. "九江" => "JJG",
  478. "吉林" => "JLL",
  479. "荆门" => "JMN",
  480. "佳木斯" => "JMB",
  481. "济宁" => "JIK",
  482. "集宁南" => "JAC",
  483. "酒泉" => "JQJ",
  484. "江山" => "JUH",
  485. "吉首" => "JIQ",
  486. "九台" => "JTL",
  487. "镜铁山" => "JVJ",
  488. "鸡西" => "JXB",
  489. "蓟县" => "JKP",
  490. "绩溪县" => "JRH",
  491. "嘉峪关" => "JGJ",
  492. "江油" => "JFW",
  493. "锦州" => "JZD",
  494. "金州" => "JZT",
  495. "福安" => "FAS",
  496. "防城" => "FAZ",
  497. "丰城" => "FCG",
  498. "丰城南" => "FNG",
  499. "肥东" => "FIH",
  500. "发耳" => "FEM",
  501. "富海" => "FHX",
  502. "福海" => "FHR",
  503. "凤凰城" => "FHT",
  504. "奉化" => "FHH",
  505. "富锦" => "FIB",
  506. "范家屯" => "FTT",
  507. "福利屯" => "FTB",
  508. "丰乐镇" => "FZB",
  509. "阜南" => "FNH",
  510. "阜宁" => "AKH",
  511. "抚宁" => "FNP",
  512. "福清" => "FQS",
  513. "福泉" => "VMW",
  514. "丰水村" => "FSJ",
  515. "丰顺" => "FUQ",
  516. "繁峙" => "FSV",
  517. "抚顺" => "FST",
  518. "福山口" => "FKP",
  519. "扶绥" => "FSZ",
  520. "冯屯" => "FTX",
  521. "浮图峪" => "FYP",
  522. "富县东" => "FDY",
  523. "凤县" => "FXY",
  524. "富县" => "FEY",
  525. "费县" => "FXK",
  526. "凤阳" => "FUH",
  527. "汾阳" => "FAV",
  528. "扶余北" => "FBT",
  529. "分宜" => "FYG",
  530. "富源" => "FYM",
  531. "扶余" => "FYT",
  532. "富裕" => "FYX",
  533. "抚州北" => "FBG",
  534. "凤州" => "FZY",
  535. "丰镇" => "FZC",
  536. "范镇" => "VZK",
  537. "固安" => "GFP",
  538. "广安" => "VJW",
  539. "高碑店" => "GBP",
  540. "沟帮子" => "GBD",
  541. "甘草店" => "GDJ",
  542. "谷城" => "GCN",
  543. "藁城" => "GEP",
  544. "高村" => "GCV",
  545. "古城镇" => "GZB",
  546. "广德" => "GRH",
  547. "贵定" => "GTW",
  548. "贵定南" => "IDW",
  549. "古东" => "GDV",
  550. "贵港" => "GGZ",
  551. "官高" => "GVP",
  552. "葛根庙" => "GGT",
  553. "干沟" => "GGL",
  554. "甘谷" => "GGJ",
  555. "高各庄" => "GGP",
  556. "甘河" => "GAX",
  557. "根河" => "GEX",
  558. "郭家店" => "GDT",
  559. "孤家子" => "GKT",
  560. "高老" => "GOB",
  561. "古浪" => "GLJ",
  562. "皋兰" => "GEJ",
  563. "高楼房" => "GFM",
  564. "归流河" => "GHT",
  565. "关林" => "GLF",
  566. "甘洛" => "VOW",
  567. "郭磊庄" => "GLP",
  568. "高密" => "GMK",
  569. "公庙子" => "GMC",
  570. "工农湖" => "GRT",
  571. "广宁寺" => "GNT",
  572. "广南卫" => "GNM",
  573. "高平" => "GPF",
  574. "甘泉北" => "GEY",
  575. "共青城" => "GAG",
  576. "甘旗卡" => "GQD",
  577. "甘泉" => "GQY",
  578. "高桥镇" => "GZD",
  579. "赶水" => "GSW",
  580. "灌水" => "GST",
  581. "孤山口" => "GSP",
  582. "果松" => "GSL",
  583. "高山子" => "GSD",
  584. "嘎什甸子" => "GXD",
  585. "高台" => "GTJ",
  586. "高滩" => "GAY",
  587. "古田" => "GTS",
  588. "官厅" => "GTP",
  589. "广通" => "GOM",
  590. "官厅西" => "KEP",
  591. "贵溪" => "GXG",
  592. "涡阳" => "GYH",
  593. "巩义" => "GXF",
  594. "高邑" => "GIP",
  595. "巩义南" => "GYF",
  596. "固原" => "GUJ",
  597. "菇园" => "GYL",
  598. "公营子" => "GYD",
  599. "光泽" => "GZS",
  600. "古镇" => "GNQ",
  601. "瓜州" => "GZJ",
  602. "高州" => "GSQ",
  603. "固镇" => "GEH",
  604. "盖州" => "GXT",
  605. "官字井" => "GOT",
  606. "革镇堡" => "GZT",
  607. "冠豸山" => "GSS",
  608. "盖州西" => "GAT",
  609. "红安" => "HWN",
  610. "淮安南" => "AMH",
  611. "红安西" => "VXN",
  612. "海安县" => "HIH",
  613. "黄柏" => "HBL",
  614. "海北" => "HEB",
  615. "鹤壁" => "HAF",
  616. "华城" => "VCQ",
  617. "合川" => "WKW",
  618. "河唇" => "HCZ",
  619. "汉川" => "HCN",
  620. "海城" => "HCT",
  621. "黑冲滩" => "HCJ",
  622. "黄村" => "HCP",
  623. "海城西" => "HXT",
  624. "化德" => "HGC",
  625. "洪洞" => "HDV",
  626. "横峰" => "HFG",
  627. "韩府湾" => "HXJ",
  628. "汉沽" => "HGP",
  629. "黄瓜园" => "HYM",
  630. "红光镇" => "IGW",
  631. "浑河" => "HHT",
  632. "红花沟" => "VHD",
  633. "黄花筒" => "HUD",
  634. "贺家店" => "HJJ",
  635. "和静" => "HJR",
  636. "红江" => "HFM",
  637. "黑井" => "HIM",
  638. "获嘉" => "HJF",
  639. "河津" => "HJV",
  640. "涵江" => "HJS",
  641. "华家" => "HJT",
  642. "河间西" => "HXP",
  643. "花家庄" => "HJM",
  644. "河口南" => "HKJ",
  645. "黄口" => "KOH",
  646. "湖口" => "HKG",
  647. "呼兰" => "HUB",
  648. "葫芦岛北" => "HPD",
  649. "浩良河" => "HHB",
  650. "哈拉海" => "HIT",
  651. "鹤立" => "HOB",
  652. "桦林" =&

人气教程排行