update
This commit is contained in:
parent
824b73741e
commit
f2fdc85c80
@ -68,7 +68,7 @@ async def wechat_phone_login(
|
||||
|
||||
# # 获取企业微信的 userid
|
||||
wecom_client = WecomClient()
|
||||
wecom_info = await wecom_client.miniprogram_to_userid(request.login_code)
|
||||
wecom_info = await wecom_client.miniprogram_to_userid(openid=openid)
|
||||
print(f"获取到的企业微信用户信息: {wecom_info}")
|
||||
|
||||
wecom_userid = None
|
||||
|
||||
@ -34,37 +34,42 @@ class WecomClient:
|
||||
logging.error(f"获取access_token失败: {str(e)}")
|
||||
raise
|
||||
|
||||
async def miniprogram_to_userid(self, code: str) -> Optional[Dict]:
|
||||
async def miniprogram_to_userid(self, openid: str) -> Optional[Dict]:
|
||||
"""
|
||||
小程序code转换为企业微信userid
|
||||
注意:这里使用code而不是openid
|
||||
转换小程序身份到企业微信
|
||||
可以使用code或openid
|
||||
"""
|
||||
try:
|
||||
# 获取provider_token
|
||||
provider_token = await self.get_provider_token()
|
||||
|
||||
# 构建请求参数
|
||||
url = "https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session"
|
||||
params = {
|
||||
"access_token": await self.get_access_token(),
|
||||
"js_code": code,
|
||||
"grant_type": "authorization_code"
|
||||
"appid": settings.WECHAT_APPID,
|
||||
}
|
||||
|
||||
# 根据传入参数类型选择
|
||||
params["openid"] = openid
|
||||
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get(url, params=params) as response:
|
||||
result = await response.json()
|
||||
print(result)
|
||||
logging.info(f"转换结果: {result}")
|
||||
|
||||
if result.get("errcode") == 0:
|
||||
data = {
|
||||
"userid": result.get("userid"),
|
||||
"pending_id": result.get("pending_id"),
|
||||
return {
|
||||
"userid": result.get("userid"), # 如果是企业成员,返回userid
|
||||
"pending_id": result.get("pending_id"), # 如果是外部联系人,返回pending_id
|
||||
"openid": result.get("openid"),
|
||||
"session_key": result.get("session_key")
|
||||
}
|
||||
return data
|
||||
else:
|
||||
logging.error(f"code转换失败: {result}")
|
||||
logging.error(f"身份转换失败: {result}")
|
||||
return None
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"code转换失败: {str(e)}")
|
||||
logging.error(f"身份转换失败: {str(e)}")
|
||||
return None
|
||||
|
||||
async def get_user_info(self, userid: str) -> Optional[Dict]:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user