Пример #1
0
    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)
Пример #2
0
 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)
Пример #3
0
    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)
Пример #4
0
 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)