fix: 星阙(xq)微信支付改读后台 club 表配置

移除 xq 强制回落 app_secrets 的逻辑,与星之界一致优先读 club 表;
字段为空时仍按项回落 settings,避免未配置时中断现网。
订单 fucha 查单同步使用 club 对应商户号。

回退: git reset --hard backup-before-xq-club-pay-20260710

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-10 19:39:15 +08:00
parent 4bda89d7c3
commit 42963a9ace
2 changed files with 13 additions and 13 deletions

View File

@@ -13,17 +13,15 @@ logger = logging.getLogger(__name__)
def get_wechat_v2_config(club_id=None):
"""
小程序 JSAPI 支付 V2 配置。
多 club 时读 club 表;缺省或 xq 回落 settings(现网不变)
各俱乐部(含 xq优先读 club 表;字段为空时按项回落 settings,兼容旧部署
"""
cid = (club_id or '').strip() or CLUB_ID_DEFAULT
fallback = {
'appid': getattr(settings, 'WEIXIN_APPID', ''),
'mch_id': getattr(settings, 'WEIXIN_MCHID', ''),
'key': getattr(settings, 'WEIXIN_SHANGHUMIYAO', ''),
'club_id': CLUB_ID_DEFAULT,
'club_id': cid,
}
if cid == CLUB_ID_DEFAULT:
return fallback
try:
club = Club.query.get(club_id=cid)
@@ -97,7 +95,7 @@ def club_id_from_order(order_id):
def get_wechat_v3_config(club_id=None):
"""
微信 V3转账/查单)配置。
多 club 读 club 表;缺省或 xq 回落 settings.WECHAT_PAY_V3_CONFIG。
各俱乐部(含 xq优先读 club 表;字段为空时按项回落 settings.WECHAT_PAY_V3_CONFIG。
"""
cid = (club_id or '').strip() or CLUB_ID_DEFAULT
wx = dict(getattr(settings, 'WECHAT_PAY_V3_CONFIG', {}) or {})
@@ -109,10 +107,8 @@ def get_wechat_v3_config(club_id=None):
'API_V3_KEY': wx.get('API_V3_KEY', ''),
'PLATFORM_CERT_DIR': wx.get('PLATFORM_CERT_DIR', ''),
'TRANSFER_SCENE_ID': wx.get('TRANSFER_SCENE_ID', '1005'),
'club_id': CLUB_ID_DEFAULT,
'club_id': cid,
}
if cid == CLUB_ID_DEFAULT:
return fallback
try:
club = Club.query.get(club_id=cid)

View File

@@ -541,7 +541,9 @@ class PaymentVerifyView(APIView):
try:
# 调用微信订单查询接口
trade_state, transaction_id = self._query_wechat_payment(dingdanid)
trade_state, transaction_id = self._query_wechat_payment(
dingdanid, club_id=getattr(dingdan, 'ClubID', None),
)
if trade_state == 'SUCCESS':
# 支付成功,执行本地更新
@@ -682,14 +684,16 @@ class PaymentVerifyView(APIView):
except Exception as e:
logger.error(f'订单收支统计失败 {dingdan.OrderID}: {e}', exc_info=True)
def _query_wechat_payment(self, out_trade_no):
def _query_wechat_payment(self, out_trade_no, club_id=None):
"""
调用微信支付订单查询接口,返回 (trade_state, transaction_id)
若查询失败,抛出异常
"""
appid = settings.WEIXIN_APPID
mch_id = settings.WEIXIN_MCHID
key = settings.WEIXIN_SHANGHUMIYAO
from jituan.services.wechat_pay import club_id_from_order, get_wechat_v2_config
pay_cfg = get_wechat_v2_config(club_id or club_id_from_order(out_trade_no))
appid = pay_cfg['appid']
mch_id = pay_cfg['mch_id']
key = pay_cfg['key']
nonce_str = self._generate_nonce_str()
params = {