Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

87 Zeilen
2.7KB

  1. from flask_restful import Resource, reqparse
  2. from flask import jsonify,request,json
  3. from common import redis_helper,utils
  4. from wechat import gewe_chat,biz
  5. from common.log import logger, log_exception
  6. import time
  7. class GetLoginInfoResource(Resource):
  8. def __init__(self):
  9. self.parser = reqparse.RequestParser()
  10. self.wxchat = gewe_chat.wxchat
  11. def post(self):
  12. req = request.get_json()
  13. tel = req.get("tel")
  14. config=self.wxchat.get_login_info_from_cache(tel)
  15. return jsonify(config)
  16. class LoginWxCaptchCodeResource(Resource):
  17. def __init__(self):
  18. self.parser = reqparse.RequestParser()
  19. self.wxchat = gewe_chat.wxchat
  20. def post(self):
  21. req = request.get_json()
  22. token_id = req.get("token_id")
  23. captch_code= req.get("captch_code")
  24. res=self.wxchat.save_login_wx_captch_code_to_cache(token_id,captch_code)
  25. return jsonify(res)
  26. class GetLoginWxQRCodeResource(Resource):
  27. def __init__(self):
  28. self.parser = reqparse.RequestParser()
  29. self.wxchat = gewe_chat.wxchat
  30. def post(self):
  31. req = request.get_json()
  32. token_id = req.get("tokenId")
  33. tel= req.get("tel")
  34. region_id= req.get("regionId")
  35. agent_token_id= req.get("agentTokenId")
  36. loginfo=gewe_chat.wxchat.get_login_info_from_cache(tel)
  37. status=loginfo.get('status','0')
  38. if status=='1':
  39. msg=f'手机号{tel},wx_token{token_id} 已经微信登录,终止登录流程'
  40. logger.info(msg)
  41. response=jsonify({'code': 501, 'message': msg})
  42. response.status_code = 501
  43. return response
  44. expried_time=int(time.time())+800
  45. flag=gewe_chat.wxchat.acquire_login_lock(token_id,800)
  46. if not flag:
  47. msg=f'手机号{tel}, wx_token{token_id} 登录进行中,稍后再试'
  48. logger.info(msg)
  49. response=jsonify({'code': 501, 'message': msg})
  50. response.status_code = 501
  51. return response
  52. app_id=loginfo.get('app_id','')
  53. qr_code = gewe_chat.wxchat.get_login_qr_code(token_id, app_id,region_id)
  54. base64_string = qr_code.get('qrImgBase64')
  55. uuid = qr_code.get('uuid')
  56. if not uuid:
  57. msg=f"uuid获取二维码失败,uuid: {uuid}"
  58. gewe_chat.wxchat.release_login_lock(token_id)
  59. logger.info(msg)
  60. response=jsonify({'code': 501, 'message': msg})
  61. response.status_code = 501
  62. return response
  63. data={
  64. "tokenId": token_id,
  65. "tel": tel,
  66. "base64Img": base64_string,
  67. "expiredTime": expried_time,
  68. }
  69. return jsonify(data)