diff --git a/__pycache__/main.cpython-310.pyc b/__pycache__/main.cpython-310.pyc index 2c1dd81..16fbb7f 100644 Binary files a/__pycache__/main.cpython-310.pyc and b/__pycache__/main.cpython-310.pyc differ diff --git a/__pycache__/utils.cpython-310.pyc b/__pycache__/utils.cpython-310.pyc index 2f21364..512dfe8 100644 Binary files a/__pycache__/utils.cpython-310.pyc and b/__pycache__/utils.cpython-310.pyc differ diff --git a/kunpeng.db b/kunpeng.db index 4f45367..ddea594 100644 Binary files a/kunpeng.db and b/kunpeng.db differ diff --git a/main.py b/main.py index d711ae9..b48e3d9 100644 --- a/main.py +++ b/main.py @@ -48,15 +48,31 @@ async def root(): # 微信登录 @app.get("/login") -def read_users(code, db: Session = Depends(get_db)): +def read_users(code,wxid, db: Session = Depends(get_db)): print('code--',code) + new_user={} payload = {'appid': 'wxa55815dd741a540d', 'secret': '82ce78719cc6b6e4a8ff738704d5b6cc','js_code':code,'grant_type':'authorization_code'} res = requests.get('https://api.weixin.qq.com/sns/jscode2session', params=payload) r=res.json() # 返回参数 session_key/unionid/errmsg/openid/errcode print('r----',r) + openId=r['openid'] + print('openId----',openId) + db_user = crud.get_user_by_openId(db, openId=openId) + print('db_user----',db_user) + + if db_user: + # 返回用户完整数据 + new_user= db_user + else: + if wxid: + # 机器人id + account_wxid='wxid_sfvsru738v3122' #异度空间 + # 新增用户 + new_user=utils.saveWxidInfo(account_wxid, wxid,openId) # "errmsg":r['errmsg'],,"errcode":r['errcode'] - return {"session_key":r['session_key'],"unionid":r['unionid'],"openid":r['openid']} + # return {"session_key":r['session_key'],"unionid":r['unionid'],"openid":r['openid']} + return new_user @@ -221,7 +237,7 @@ def kp(event_data): # crud.create_user(db=SessionLocal(),user=userClass) # 保存好友信息 - utils.saveWxidInfo(account_wxid, wxid) + # utils.saveWxidInfo(account_wxid, wxid) # 发送小程序 utils.sendminiProgram(data, account_wxid, wxid, planetXml) # if msg in ['腾讯云']: diff --git a/utils.py b/utils.py index 1944f48..c93b30d 100644 --- a/utils.py +++ b/utils.py @@ -25,17 +25,21 @@ from pydantic import BaseModel # 保存好友信息 -def saveWxidInfo(account_wxid, wxid): +def saveWxidInfo(account_wxid, wxid,openId=None): allFriend = WXBotService.get_address_list(account_wxid) for friendItem in allFriend['data']["contactList"]: if friendItem['wxid'] == wxid: + # 存储小程序openid + if openId: + friendItem['openId'] = openId friendItemObj = models.User(**friendItem) db_user = crud.get_user_by_wxid(db=SessionLocal(), wxid=wxid) if db_user: print("wxid already registered") # return db_user else: - crud.create_user(db=SessionLocal(), user=friendItemObj) + new_user=crud.create_user(db=SessionLocal(), user=friendItemObj) + return new_user # 发送小程序模版,建议远程更新