fix: 小程序支付 AppID 与登录一致,登录覆盖过期 openid 绑定
- JSAPI 支付优先 club.wx_appid(与 jscode2session 一致,不再优先 pay_app_id) - 登录时同一用户+俱乐部只保留最新 openid,清除旧绑定 - 支付仅读 user_wx_openid,彻底禁用 legacy OpenID/UserName 回落 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -51,7 +51,16 @@ def get_wechat_v2_config(club_id=None):
|
||||
|
||||
cfg_json = club.config_json or {}
|
||||
mch_key, key_source = _resolve_v2_mch_key(cfg_json, fallback['key'])
|
||||
appid = club.pay_app_id or club.wx_appid or fallback['appid']
|
||||
mini_appid = (club.wx_appid or '').strip()
|
||||
pay_appid = (club.pay_app_id or '').strip()
|
||||
if mini_appid and pay_appid and mini_appid != pay_appid:
|
||||
logger.warning(
|
||||
'[WX_V2_CONFIG] club=%s wx_appid(%s) 与 pay_app_id(%s) 不一致;'
|
||||
'小程序 JSAPI 支付以 wx_appid 为准(openid 与登录 AppID 绑定)',
|
||||
cid, mini_appid, pay_appid,
|
||||
)
|
||||
# openid 由 jscode2session(club.wx_appid) 换取,支付 AppID 须与登录一致
|
||||
appid = mini_appid or pay_appid or fallback['appid']
|
||||
mch_id = club.mch_id or fallback['mch_id']
|
||||
|
||||
if mch_id and key_source == 'settings.WEIXIN_SHANGHUMIYAO':
|
||||
@@ -204,7 +213,11 @@ def get_wechat_v3_config(club_id=None):
|
||||
|
||||
cfg_json = club.config_json or {}
|
||||
return {
|
||||
'APPID': club.pay_app_id or club.wx_appid or fallback['APPID'],
|
||||
'APPID': (
|
||||
(club.wx_appid or '').strip()
|
||||
or (club.pay_app_id or '').strip()
|
||||
or fallback['APPID']
|
||||
),
|
||||
'MCHID': club.mch_id or fallback['MCHID'],
|
||||
'PRIVATE_KEY_PATH': (
|
||||
club.private_key_path
|
||||
|
||||
Reference in New Issue
Block a user