-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
152 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
#!/usr/bin/env python | ||
# -*- coding: utf-8 -*- | ||
city_dic = {'北京': '101010100', '朝阳': '101010300', '顺义': '101010400', '怀柔': '101010500', '通州': '101010600', | ||
'昌平': '101010700', '延庆': '101010800', '丰台': '101010900', '石景山': '101011000', '大兴': '101011100', | ||
'房山': '101011200', '密云': '101011300', '门头沟': '101011400', '平谷': '101011500', '八达岭': '101011600', | ||
'佛爷顶': '101011700', '汤河口': '101011800', '密云上甸子': '101011900', '斋堂': '101012000', '霞云岭': '101012100', | ||
'北京城区': '101012200', '海淀': '101010200', '天津': '101030100', '宝坻': '101030300', '东丽': '101030400', | ||
'西青': '101030500', '北辰': '101030600', '蓟县': '101031400', '汉沽': '101030800', '静海': '101030900', | ||
'津南': '101031000', '塘沽': '101031100', '大港': '101031200', '武清': '101030200', '宁河': '101030700', | ||
'上海': '101020100', '宝山': '101020300', '嘉定': '101020500', '南汇': '101020600', '浦东': '101021300', | ||
'青浦': '101020800', '松江': '101020900', '奉贤': '101021000', '崇明': '101021100', '徐家汇': '101021200', | ||
'闵行': '101020200', '金山': '101020700', '石家庄': '101090101', '张家口': '101090301', '承德': '101090402', | ||
'唐山': '101090501', '秦皇岛': '101091101', '沧州': '101090701', '衡水': '101090801', '邢台': '101090901', | ||
'邯郸': '101091001', '保定': '101090201', '廊坊': '101090601', '郑州': '101180101', '新乡': '101180301', | ||
'许昌': '101180401', '平顶山': '101180501', '信阳': '101180601', '南阳': '101180701', '开封': '101180801', | ||
'洛阳': '101180901', '商丘': '101181001', '焦作': '101181101', '鹤壁': '101181201', '濮阳': '101181301', | ||
'周口': '101181401', '漯河': '101181501', '驻马店': '101181601', '三门峡': '101181701', '济源': '101181801', | ||
'安阳': '101180201', '合肥': '101220101', '芜湖': '101220301', '淮南': '101220401', '马鞍山': '101220501', | ||
'安庆': '101220601', '宿州': '101220701', '阜阳': '101220801', '亳州': '101220901', '黄山': '101221001', | ||
'滁州': '101221101', '淮北': '101221201', '铜陵': '101221301', '宣城': '101221401', '六安': '101221501', | ||
'巢湖': '101221601', '池州': '101221701', '蚌埠': '101220201', '杭州': '101210101', '舟山': '101211101', | ||
'湖州': '101210201', '嘉兴': '101210301', '金华': '101210901', '绍兴': '101210501', '台州': '101210601', | ||
'温州': '101210701', '丽水': '101210801', '衢州': '101211001', '宁波': '101210401', '重庆': '101040100', | ||
'合川': '101040300', '南川': '101040400', '江津': '101040500', '万盛': '101040600', '渝北': '101040700', | ||
'北碚': '101040800', '巴南': '101040900', '长寿': '101041000', '黔江': '101041100', '万州天城': '101041200', | ||
'万州龙宝': '101041300', '涪陵': '101041400', '开县': '101041500', '城口': '101041600', '云阳': '101041700', | ||
'巫溪': '101041800', '奉节': '101041900', '巫山': '101042000', '潼南': '101042100', '垫江': '101042200', | ||
'梁平': '101042300', '忠县': '101042400', '石柱': '101042500', '大足': '101042600', '荣昌': '101042700', | ||
'铜梁': '101042800', '璧山': '101042900', '丰都': '101043000', '武隆': '101043100', '彭水': '101043200', | ||
'綦江': '101043300', '酉阳': '101043400', '秀山': '101043600', '沙坪坝': '101043700', '永川': '101040200', | ||
'福州': '101230101', '泉州': '101230501', '漳州': '101230601', '龙岩': '101230701', '晋江': '101230509', | ||
'南平': '101230901', '厦门': '101230201', '宁德': '101230301', '莆田': '101230401', '三明': '101230801', | ||
'兰州': '101160101', '平凉': '101160301', '庆阳': '101160401', '武威': '101160501', '金昌': '101160601', | ||
'嘉峪关': '101161401', '酒泉': '101160801', '天水': '101160901', '武都': '101161001', '临夏': '101161101', | ||
'合作': '101161201', '白银': '101161301', '定西': '101160201', '张掖': '101160701', '广州': '101280101', | ||
'惠州': '101280301', '梅州': '101280401', '汕头': '101280501', '深圳': '101280601', '珠海': '101280701', | ||
'佛山': '101280800', '肇庆': '101280901', '湛江': '101281001', '江门': '101281101', '河源': '101281201', | ||
'清远': '101281301', '云浮': '101281401', '潮州': '101281501', '东莞': '101281601', '中山': '101281701', | ||
'阳江': '101281801', '揭阳': '101281901', '茂名': '101282001', '汕尾': '101282101', '韶关': '101280201', | ||
'南宁': '101300101', '柳州': '101300301', '来宾': '101300401', '桂林': '101300501', '梧州': '101300601', | ||
'防城港': '101301401', '贵港': '101300801', '玉林': '101300901', '百色': '101301001', '钦州': '101301101', | ||
'河池': '101301201', '北海': '101301301', '崇左': '101300201', '贺州': '101300701', '贵阳': '101260101', | ||
'安顺': '101260301', '都匀': '101260401', '兴义': '101260906', '铜仁': '101260601', '毕节': '101260701', | ||
'六盘水': '101260801', '遵义': '101260201', '凯里': '101260501', '昆明': '101290101', '红河': '101290301', | ||
'文山': '101290601', '玉溪': '101290701', '楚雄': '101290801', '普洱': '101290901', '昭通': '101291001', | ||
'临沧': '101291101', '怒江': '101291201', '香格里拉': '101291301', '丽江': '101291401', '德宏': '101291501', | ||
'景洪': '101291601', '大理': '101290201', '曲靖': '101290401', '保山': '101290501', '呼和浩特': '101080101', | ||
'乌海': '101080301', '集宁': '101080401', '通辽': '101080501', '阿拉善左旗': '101081201', '鄂尔多斯': '101080701', | ||
'临河': '101080801', '锡林浩特': '101080901', '呼伦贝尔': '101081000', '乌兰浩特': '101081101', '包头': '101080201', | ||
'赤峰': '101080601', '南昌': '101240101', '上饶': '101240301', '抚州': '101240401', '宜春': '101240501', | ||
'鹰潭': '101241101', '赣州': '101240701', '景德镇': '101240801', '萍乡': '101240901', '新余': '101241001', | ||
'九江': '101240201', '吉安': '101240601', '武汉': '101200101', '黄冈': '101200501', '荆州': '101200801', | ||
'宜昌': '101200901', '恩施': '101201001', '十堰': '101201101', '神农架': '101201201', '随州': '101201301', | ||
'荆门': '101201401', '天门': '101201501', '仙桃': '101201601', '潜江': '101201701', '襄樊': '101200201', | ||
'鄂州': '101200301', '孝感': '101200401', '黄石': '101200601', '咸宁': '101200701', '成都': '101270101', | ||
'自贡': '101270301', '绵阳': '101270401', '南充': '101270501', '达州': '101270601', '遂宁': '101270701', | ||
'广安': '101270801', '巴中': '101270901', '泸州': '101271001', '宜宾': '101271101', '内江': '101271201', | ||
'资阳': '101271301', '乐山': '101271401', '眉山': '101271501', '凉山': '101271601', '雅安': '101271701', | ||
'甘孜': '101271801', '阿坝': '101271901', '德阳': '101272001', '广元': '101272101', '攀枝花': '101270201', | ||
'银川': '101170101', '中卫': '101170501', '固原': '101170401', '石嘴山': '101170201', '吴忠': '101170301', | ||
'西宁': '101150101', '黄南': '101150301', '海北': '101150801', '果洛': '101150501', '玉树': '101150601', | ||
'海西': '101150701', '海东': '101150201', '海南': '101150401', '济南': '101120101', '潍坊': '101120601', | ||
'临沂': '101120901', '菏泽': '101121001', '滨州': '101121101', '东营': '101121201', '威海': '101121301', | ||
'枣庄': '101121401', '日照': '101121501', '莱芜': '101121601', '聊城': '101121701', '青岛': '101120201', | ||
'淄博': '101120301', '德州': '101120401', '烟台': '101120501', '济宁': '101120701', '泰安': '101120801', | ||
'西安': '101110101', '延安': '101110300', '榆林': '101110401', '铜川': '101111001', '商洛': '101110601', | ||
'安康': '101110701', '汉中': '101110801', '宝鸡': '101110901', '咸阳': '101110200', '渭南': '101110501', | ||
'太原': '101100101', '临汾': '101100701', '运城': '101100801', '朔州': '101100901', '忻州': '101101001', | ||
'长治': '101100501', '大同': '101100201', '阳泉': '101100301', '晋中': '101100401', '晋城': '101100601', | ||
'吕梁': '101101100', '乌鲁木齐': '101130101', '石河子': '101130301', '昌吉': '101130401', '吐鲁番': '101130501', | ||
'库尔勒': '101130601', '阿拉尔': '101130701', '阿克苏': '101130801', '喀什': '101130901', '伊宁': '101131001', | ||
'塔城': '101131101', '哈密': '101131201', '和田': '101131301', '阿勒泰': '101131401', '阿图什': '101131501', | ||
'博乐': '101131601', '克拉玛依': '101130201', '拉萨': '101140101', '山南': '101140301', '阿里': '101140701', | ||
'昌都': '101140501', '那曲': '101140601', '日喀则': '101140201', '林芝': '101140401', '台北县': '101340101', | ||
'高雄': '101340201', '台中': '101340401', '海口': '101310101', '三亚': '101310201', '东方': '101310202', | ||
'临高': '101310203', '澄迈': '101310204', '儋州': '101310205', '昌江': '101310206', '白沙': '101310207', | ||
'琼中': '101310208', '定安': '101310209', '屯昌': '101310210', '琼海': '101310211', '文昌': '101310212', | ||
'保亭': '101310214', '万宁': '101310215', '陵水': '101310216', '西沙': '101310217', '南沙岛': '101310220', | ||
'乐东': '101310221', '五指山': '101310222', '琼山': '101310102', '长沙': '101250101', '株洲': '101250301', | ||
'衡阳': '101250401', '郴州': '101250501', '常德': '101250601', '益阳': '101250700', '娄底': '101250801', | ||
'邵阳': '101250901', '岳阳': '101251001', '张家界': '101251101', '怀化': '101251201', '黔阳': '101251301', | ||
'永州': '101251401', '吉首': '101251501', '湘潭': '101250201', '南京': '101190101', '镇江': '101190301', | ||
'苏州': '101190401', '南通': '101190501', '扬州': '101190601', '宿迁': '101191301', '徐州': '101190801', | ||
'淮安': '101190901', '连云港': '101191001', '常州': '101191101', '泰州': '101191201', '无锡': '101190201', | ||
'盐城': '101190701', '哈尔滨': '101050101', '牡丹江': '101050301', '佳木斯': '101050401', '绥化': '101050501', | ||
'黑河': '101050601', '双鸭山': '101051301', '伊春': '101050801', '大庆': '101050901', '七台河': '101051002', | ||
'鸡西': '101051101', '鹤岗': '101051201', '齐齐哈尔': '101050201', '大兴安岭': '101050701', '长春': '101060101', | ||
'延吉': '101060301', '四平': '101060401', '白山': '101060901', '白城': '101060601', '辽源': '101060701', | ||
'松原': '101060801', '吉林': '101060201', '通化': '101060501', '沈阳': '101070101', '鞍山': '101070301', | ||
'抚顺': '101070401', '本溪': '101070501', '丹东': '101070601', '葫芦岛': '101071401', '营口': '101070801', | ||
'阜新': '101070901', '辽阳': '101071001', '铁岭': '101071101', '朝阳': '101071201', '盘锦': '101071301', | ||
'大连': '101070201', '锦州': '101070701', } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,67 @@ | ||
# -*- coding: utf-8 -*- | ||
import hashlib | ||
from authentication.WXBizMsgCrypt import WXBizMsgCrypt | ||
import xml.etree.cElementTree as ET | ||
import city_dic | ||
import urllib | ||
|
||
appid = 'c41c084feb0d18dd1937ba989f667b42' | ||
token = 'ICcxs5844qOY24rTc1c696X5btR551m2' | ||
encodingAESKey = 'rEotmyYHNsLLXM1olf3ntRx2PXCYXK6eQ3CxWCJegSV' | ||
appid = "c41c084feb0d18dd1937ba989f667b42" | ||
token = "ICcxs5844qOY24rTc1c696X5btR551m2" | ||
encodingAESKey = "rEotmyYHNsLLXM1olf3ntRx2PXCYXK6eQ3CxWCJegSV" | ||
wxcpt = WXBizMsgCrypt(token, encodingAESKey, appid) | ||
|
||
|
||
class WxApp(object): | ||
@staticmethod | ||
def is_valid(request): | ||
print '==========开始认证===============' | ||
print '==========URL参数===============' | ||
signature = request.values['signature'] | ||
timestamp = request.values['timestamp'] | ||
nonce = request.values['nonce'] | ||
print "==========开始认证===============" | ||
print "==========URL参数===============" | ||
signature, timestamp, nonce = WxApp.get_query_param(request) | ||
verifyEchoStr = request.values["echostr"] | ||
param_list = [token, timestamp, nonce] | ||
param_list.sort() | ||
sha1 = hashlib.sha1() | ||
sha1.update(''.join(param_list).encode('utf-8')) | ||
sha1.update("".join(param_list).encode("utf-8")) | ||
hashcode = sha1.hexdigest() | ||
if hashcode == signature: | ||
return verifyEchoStr | ||
else: | ||
return '' | ||
return "" | ||
|
||
@staticmethod | ||
def weather_search(request): | ||
signature, timestamp, nonce = WxApp.get_query_param(request) | ||
content, to_user = WxApp.get_content(request) | ||
ret, encrypt_xml = WxApp.send_data(content, to_user, nonce) | ||
#city_string = WxApp.get_content(request) | ||
#city_code = city_dic.city_dic[city_string] | ||
#url_open = urllib.urlopen("http://www.weather.com.cn/data/cityinfo/%s.html" % city_code) | ||
#s = url_open.read() | ||
#s = WxApp.get_content(request).encode("utf-8") | ||
if ret == 0: | ||
return encrypt_xml | ||
else: | ||
return ret | ||
|
||
@staticmethod | ||
def get_content(request): | ||
signature, timestamp, nonce = WxApp.get_query_param(request) | ||
post_content = request.data | ||
ret, xml_content = wxcpt.DecryptMsg(post_content, signature, timestamp, nonce) | ||
xml_tree = ET.fromstring(xml_content) | ||
return xml_tree.find("Content").text, xml_tree.find("ToUserName") | ||
|
||
|
||
@staticmethod | ||
def get_query_param(request): | ||
signature = request.values["msg_signature"] | ||
timestamp = request.values["timestamp"] | ||
nonce = request.values["nonce"] | ||
return signature, timestamp, nonce | ||
|
||
@staticmethod | ||
def send_data(content, to_user, nonce): | ||
template = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[ziminghua88]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>" | ||
return wxcpt.EncryptMsg(template % to_user, content, nonce) | ||
|
||
|