diff --git a/app/api/endpoints/user.py b/app/api/endpoints/user.py index 1df04e0..45a769c 100644 --- a/app/api/endpoints/user.py +++ b/app/api/endpoints/user.py @@ -98,7 +98,7 @@ async def login( user_code = generate_user_code(db) user = UserDB( - nickname=f"user_{phone[-4:]}", + nickname=f"蜂友{phone[-4:]}", phone=phone, user_code=user_code, referral_code=user_login.referral_code, @@ -166,7 +166,7 @@ async def phone_login( user_code = generate_user_code(db) user = UserDB( - nickname=f"user_{request.phone[-4:]}", + nickname=f"蜂友{request.phone[-4:]}", phone=request.phone, user_code=user_code, referral_code=request.referral_code, diff --git a/app/api/endpoints/wechat.py b/app/api/endpoints/wechat.py index c4af515..3149ff4 100644 --- a/app/api/endpoints/wechat.py +++ b/app/api/endpoints/wechat.py @@ -40,10 +40,15 @@ async def wechat_phone_login( # 获取用户手机号 phone_info = await wechat.get_phone_number(request.phone_code) - if not phone_info or not phone_info.get('phone_number'): + if not phone_info: return error_response(code=400, message="获取手机号失败") + # 打印调试信息 + print(f"获取到的手机号信息: {phone_info}") + phone = phone_info['phone_number'] + if not phone: + return error_response(code=400, message="手机号为空") # 查找或创建用户 user = db.query(UserDB).filter(UserDB.phone == phone).first() @@ -52,7 +57,7 @@ async def wechat_phone_login( user_code = generate_user_code(db) user = UserDB( - nickname=f"user_{phone[-4:]}", + nickname=f"蜂友{phone[-4:]}", phone=phone, user_code=user_code, referral_code=request.referral_code, diff --git a/app/core/wechat.py b/app/core/wechat.py index fee8f79..28dc660 100644 --- a/app/core/wechat.py +++ b/app/core/wechat.py @@ -59,10 +59,22 @@ class WeChatClient: except json.JSONDecodeError: raise Exception(f"解析微信返回数据失败: {text}") + # 打印调试信息 + print(f"微信返回数据: {result}") + if result.get("errcode", 0) != 0: raise Exception(result.get("errmsg", "获取手机号失败")) - return result.get("phone_info", {}) + # 正确获取 phone_info + phone_info = result.get("phone_info") + if not phone_info: + raise Exception("未获取到手机号信息") + + return { + "phone_number": phone_info.get("phoneNumber"), + "pure_phone_number": phone_info.get("purePhoneNumber"), + "country_code": phone_info.get("countryCode"), + } async def code2session(self, code: str) -> dict: