update
This commit is contained in:
parent
61c63678e4
commit
46fe81658f
@ -10,6 +10,13 @@ import base64
|
|||||||
from Crypto.Cipher import AES
|
from Crypto.Cipher import AES
|
||||||
import typing
|
import typing
|
||||||
import struct
|
import struct
|
||||||
|
from app.core.wecomclient import wecom_client
|
||||||
|
from app.models.user import UserDB
|
||||||
|
from app.api.deps import get_current_user
|
||||||
|
from fastapi import Depends
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
from app.core.response import error_response, success_response
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@ -135,3 +142,33 @@ async def wechat_corp_callback(
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.exception("处理企业微信回调消息异常")
|
logging.exception("处理企业微信回调消息异常")
|
||||||
return Response(content="success", media_type="text/plain")
|
return Response(content="success", media_type="text/plain")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class RefreshRequest(BaseModel):
|
||||||
|
code: str
|
||||||
|
|
||||||
|
@router.post("/refresh")
|
||||||
|
async def refresh(
|
||||||
|
request: RefreshRequest,
|
||||||
|
db: Session = Depends(get_db),
|
||||||
|
current_user: UserDB = Depends(get_current_user)
|
||||||
|
):
|
||||||
|
if current_user and (current_user.wecom_userid or current_user.wecom_pending_id):
|
||||||
|
return error_response(code=400, message="用户已绑定企业微信")
|
||||||
|
|
||||||
|
user_info = await wecom_client.code2session(request.code)
|
||||||
|
print(f"获取到的企业微信用户信息: {user_info}")
|
||||||
|
if not user_info:
|
||||||
|
return error_response(code=400, message="获取企业微信用户信息失败")
|
||||||
|
|
||||||
|
if user_info.get("userid"):
|
||||||
|
current_user.wecom_userid = user_info.get("userid")
|
||||||
|
else:
|
||||||
|
current_user.wecom_pending_id = user_info.get("pending_id")
|
||||||
|
|
||||||
|
db.commit()
|
||||||
|
db.refresh(current_user)
|
||||||
|
|
||||||
|
return success_response(message="企业微信用户信息刷新成功")
|
||||||
|
|
||||||
|
|||||||
@ -39,7 +39,7 @@ class WecomClient:
|
|||||||
logging.exception(f"获取企业微信访问令牌异常: {str(e)}")
|
logging.exception(f"获取企业微信访问令牌异常: {str(e)}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def miniprogram_to_userid(self, code: str) -> Optional[Dict[str, Any]]:
|
async def code2session(self, code: str) -> Optional[Dict[str, Any]]:
|
||||||
"""
|
"""
|
||||||
小程序code转换为企业微信userid
|
小程序code转换为企业微信userid
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user