from flask_restful import Resource, reqparse from flask import jsonify,request,json from common import redis_helper,utils from wechat import gewe_chat,biz from common.log import logger, log_exception import time class GetLoginInfoResource(Resource): def __init__(self): self.parser = reqparse.RequestParser() self.wxchat = gewe_chat.wxchat def post(self): req = request.get_json() tel = req.get("tel") config=self.wxchat.get_login_info_from_cache(tel) return jsonify(config) class LoginWxCaptchCodeResource(Resource): def __init__(self): self.parser = reqparse.RequestParser() self.wxchat = gewe_chat.wxchat def post(self): req = request.get_json() token_id = req.get("token_id") captch_code= req.get("captch_code") res=self.wxchat.save_login_wx_captch_code_to_cache(token_id,captch_code) return jsonify(res) class GetLoginWxQRCodeResource(Resource): def __init__(self): self.parser = reqparse.RequestParser() self.wxchat = gewe_chat.wxchat def post(self): req = request.get_json() token_id = req.get("tokenId") tel= req.get("tel") region_id= req.get("regionId") agent_token_id= req.get("agentTokenId") loginfo=gewe_chat.wxchat.get_login_info_from_cache(tel) status=loginfo.get('status','0') if status=='1': msg=f'手机号{tel},wx_token{token_id} 已经微信登录,终止登录流程' logger.info(msg) response=jsonify({'code': 501, 'message': msg}) response.status_code = 501 return response expried_time=int(time.time())+800 flag=gewe_chat.wxchat.acquire_login_lock(token_id,800) if not flag: msg=f'手机号{tel}, wx_token{token_id} 登录进行中,稍后再试' logger.info(msg) response=jsonify({'code': 501, 'message': msg}) response.status_code = 501 return response app_id=loginfo.get('app_id','') qr_code = gewe_chat.wxchat.get_login_qr_code(token_id, app_id,region_id) base64_string = qr_code.get('qrImgBase64') uuid = qr_code.get('uuid') if not uuid: msg=f"uuid获取二维码失败,uuid: {uuid}" gewe_chat.wxchat.release_login_lock(token_id) logger.info(msg) response=jsonify({'code': 501, 'message': msg}) response.status_code = 501 return response data={ "tokenId": token_id, "tel": tel, "base64Img": base64_string, "expiredTime": expried_time, } return jsonify(data)