def weixin_sendText(userid, text): weixin = Weixin() ret=weixin.sendText(userid, text) return json.dumps(ret)
def weixin_listDepartment(): weixin = Weixin() ret = weixin.listDepartment() if ret['errcode'] != 0: abort(503) return json.dumps(ret)
def weixin_sendText(userid, text): weixin = Weixin() ret = weixin.sendText(userid, text) return json.dumps(ret)
def weixin_callback(): msg_signature = request.args.get('msg_signature', '') timestamp = request.args.get('timestamp', '') nonce = request.args.get('nonce', '') app.logger.debug("%s,%s,%s" % (msg_signature, timestamp, nonce)) cb = Callback() # 在回调模式下,只有验证时的请求是GET,这时候只要返回echostr即可 # 见 http://qydev.weixin.qq.com/wiki/index.php?title=%E5%9B%9E%E8%B0%83%E6%A8%A1%E5%BC%8F if request.method == 'GET': echostr = request.args.get('echostr', '') app.logger.debug(echostr) ohcestr = cb.validate(msg_signature, timestamp, nonce, echostr) return render_template('weixin/echo.html', ohcestr=ohcestr), 200 else: # POST请求,是微信回调(微信把用户的输入以及一些特定事件通过此方式通知企业),微信发来的消息是xml格式的,并且经过加密,需要用专用的解密算法解密 # 见 http://qydev.weixin.qq.com/wiki/index.php?title=%E5%9B%9E%E8%B0%83%E6%A8%A1%E5%BC%8F body = request.get_data() # print(body) current_app.logger.debug("weixin_callback body:{}".format(body)) msg = cb.decode(msg_signature, timestamp, nonce, body.decode("utf-8")) current_app.logger.debug("weixin_callback msg:{}".format(msg)) # 从消息中可以获取相关信息,我们包装了一小部分常用的,业务可以根据自己需要再继续封装 msg_from = cb.getFromUser(msg) msg_type = cb.getMsgType(msg) if msg_type == 'text': text = cb.getText(msg) return make_response(cb.mkTextMsg(msg_from, text), 200) elif msg_type == 'event': event = cb.getEvent(msg) print(event) if event == 'scancode_waitmsg': scanResult = cb.getScanResult(msg) print(scanResult) weixin = Weixin() ret = weixin.sendText(msg_from, "扫描内容:{}".format(scanResult)) return make_response(cb.mkQCdode(msg_from, scanResult), 200) if event == 'LOCATION': return make_response(cb.mkTextMsg(msg_from), 200) if event == 'enter_agent': news = [{ 'title': 'API测试', 'description': '', 'picurl': 'http://upload.univs.cn/2012/1120/thumb_940__1353374661982.jpg', 'url': '' }, { 'title': '获取用户列表', 'description': '', 'picurl': 'http://v1.qzone.cc/pic/201507/12/16/16/55a22256bc474195.jpg%21600x600.jpg', 'url': url_for('weixin_listUser') }, { 'title': '获取部门列表', 'description': '', 'picurl': 'http://v1.qzone.cc/pic/201507/12/16/16/55a22256bc474195.jpg%21600x600.jpg', 'url': url_for('weixin_listDepartment') }] return make_response(cb.mkNewsMsg(msg_from, news), 200)