小程序适配
All checks were successful
Deploy to Server / deploy (push) Successful in 25s

This commit is contained in:
jeremygan2021
2026-02-26 15:25:49 +08:00
parent 1f1c92f03f
commit 6910582b18

View File

@@ -974,12 +974,14 @@ def get_current_wechat_user(request):
@extend_schema( @extend_schema(
summary="微信小程序登录", summary="微信小程序登录",
description="支持通过 code 登录,以及可选的 phone_code 用于直接获取手机号并合并 Web 用户账号。同时支持传入用户基本信息gender, country, province, city", description="支持通过 code 登录,以及可选的 phone_code 用于直接获取手机号并合并 Web 用户账号。同时支持传入用户基本信息(nickname, avatar_url, gender, country, province, city",
request={ request={
'application/json': { 'application/json': {
'properties': { 'properties': {
'code': {'type': 'string', 'description': 'wx.login获取的code'}, 'code': {'type': 'string', 'description': 'wx.login获取的code'},
'phone_code': {'type': 'string', 'description': 'getPhoneNumber获取的code (可选)'}, 'phone_code': {'type': 'string', 'description': 'getPhoneNumber获取的code (可选)'},
'nickname': {'type': 'string', 'description': '昵称 (可选)'},
'avatar_url': {'type': 'string', 'description': '头像URL (可选)'},
'gender': {'type': 'integer', 'description': '性别 0未知 1男 2女 (可选)'}, 'gender': {'type': 'integer', 'description': '性别 0未知 1男 2女 (可选)'},
'country': {'type': 'string', 'description': '国家 (可选)'}, 'country': {'type': 'string', 'description': '国家 (可选)'},
'province': {'type': 'string', 'description': '省份 (可选)'}, 'province': {'type': 'string', 'description': '省份 (可选)'},
@@ -996,6 +998,8 @@ def wechat_login(request):
phone_code = request.data.get('phone_code') phone_code = request.data.get('phone_code')
# 获取可选的用户信息 # 获取可选的用户信息
nickname = request.data.get('nickname')
avatar_url = request.data.get('avatar_url')
gender = request.data.get('gender') gender = request.data.get('gender')
country = request.data.get('country') country = request.data.get('country')
province = request.data.get('province') province = request.data.get('province')
@@ -1095,7 +1099,6 @@ def wechat_login(request):
user = mp_user user = mp_user
# 更新手机号 # 更新手机号
if not user.phone_number:
user.phone_number = phone_number user.phone_number = phone_number
user.save() user.save()
else: else:
@@ -1145,6 +1148,10 @@ def wechat_login(request):
user.unionid = unionid user.unionid = unionid
# 更新用户基本信息 (如果有传入) # 更新用户基本信息 (如果有传入)
if nickname:
user.nickname = nickname
if avatar_url:
user.avatar_url = avatar_url
if gender is not None: if gender is not None:
user.gender = gender user.gender = gender
if country: if country: