fix: 自动提现按俱乐部解析微信openid,修复已登录仍提示微信登录
This commit is contained in:
@@ -151,10 +151,17 @@ def ensure_user_club_id(user, club_id):
|
||||
user.save(update_fields=['ClubID'])
|
||||
|
||||
|
||||
def _looks_like_wx_openid(value):
|
||||
"""微信 openid 常见形态:以 o 开头、长度约 28。"""
|
||||
v = (value or '').strip()
|
||||
return len(v) >= 20 and v.startswith('o')
|
||||
|
||||
|
||||
def get_wx_openid_for_user(user, club_id=None):
|
||||
"""
|
||||
按俱乐部取微信支付 JSAPI 用 openid。
|
||||
多俱乐部用户 openid 在 user_wx_openid;xq 老用户可回落 User.OpenID。
|
||||
多俱乐部用户 openid 在 user_wx_openid;xq 老用户可回落 User.OpenID;
|
||||
星之界等俱乐部用户常 UserName=openid 且 OpenID 为空,再回落 UserName。
|
||||
"""
|
||||
if not user:
|
||||
return ''
|
||||
@@ -165,7 +172,12 @@ def get_wx_openid_for_user(user, club_id=None):
|
||||
if binding and binding.openid:
|
||||
return binding.openid
|
||||
legacy = getattr(user, 'OpenID', None) or getattr(user, 'openid', None)
|
||||
return legacy or ''
|
||||
if legacy:
|
||||
return legacy.strip()
|
||||
username = (getattr(user, 'UserName', None) or '').strip()
|
||||
if _looks_like_wx_openid(username):
|
||||
return username
|
||||
return ''
|
||||
|
||||
|
||||
def get_payment_openid(request, user=None, club_id=None):
|
||||
|
||||
Reference in New Issue
Block a user