def post(self, sp_id): params = PropDict([(name, self.get_argument(name).encode('utf-8')) for name in self.request.arguments]) token = hashlib.md5(options.cookie_secret + sp_id).hexdigest() if not verify_wx_request(params, token): logging.info('weixin msg verification failed') return else: logging.info('weixin request body: %s', self.request.body.replace('\n', '')) body = ET.fromstring(self.request.body) msg_type = body.findtext('./MsgType') sent_from = body.findtext('./FromUserName') mem = self.db.get( 'select * from member where wx_id=%s and sp_id=%s', sent_from, sp_id) if not mem: # 用户不存在,创建 mem_id = create_member(self.db, sp_id, sent_from) mem = self.db.get('select * from member where id=%s', mem_id) properties = self.db.query( 'select * from supplier_property where sp_id=%s', sp_id) sp_props = PropDict([(i.name, i.value) for i in properties]) # 根据对应的消息类型处理消息 getattr(self, msg_type)(sp_id, body, mem, sp_props)
def get(self, sp_id): params = PropDict([(name, self.get_argument(name).encode('utf-8')) for name in self.request.arguments]) logging.info('Weixin heartbeat request: %s', json_dumps(params)) token = hashlib.md5(options.cookie_secret + sp_id).hexdigest() if verify_wx_request(params, token): self.write(params.echostr)
def post(self, sp_id): params = PropDict([(name, self.get_argument(name).encode('utf-8')) for name in self.request.arguments]) token = hashlib.md5(options.cookie_secret + sp_id).hexdigest() if not verify_wx_request(params, token): logging.info('weixin msg verification failed') return else: logging.info('weixin request body: %s', self.request.body.replace('\n', '')) body = ET.fromstring(self.request.body) msg_type = body.findtext('./MsgType') sent_from = body.findtext('./FromUserName') mem = self.db.get('select * from member where wx_id=%s and sp_id=%s', sent_from, sp_id) if not mem: # 用户不存在,创建 mem_id = create_member(self.db, sp_id, sent_from) mem = self.db.get('select * from member where id=%s', mem_id) properties = self.db.query('select * from supplier_property where sp_id=%s', sp_id) sp_props = PropDict([(i.name, i.value) for i in properties]) # 根据对应的消息类型处理消息 getattr(self, msg_type)(sp_id, body, mem, sp_props)