fix: Native二维码改回官方weixin付款码,取消HTTPS中转

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQueandCursor committed 2026-08-08 20:41:47 +08:00
1 parent 94f7a2fba9
commit be42721fe6
1 file changed
+7 -15
+7 -15
View File
@@ -25,28 +25,20 @@ logger = logging.getLogger(__name__)
CACHE_KEY_PREFIX = 'wx_native_code_'
CACHE_TTL_SECONDS = 60 * 30
# 相册扫码友好:二维码图编码 HTTPS 中转页(打开后再跳 weixin://),复制链接仍给官方 code_url
BRIDGE_URL_BASE = 'https://www.abas.asia/hqhd/dingdan/wx-native-pay/'
def _cache_key(dingdanid: str) -> str:
return f'{CACHE_KEY_PREFIX}{dingdanid}'
def build_native_bridge_url(dingdanid: str) -> str:
from urllib.parse import quote
return f'{BRIDGE_URL_BASE}?out_trade_no={quote(dingdanid, safe="")}'
def _native_pay_response(dingdanid: str, code_url: str) -> dict:
def _native_pay_response(code_url: str) -> dict:
"""二维码必须直接编码官方 code_url(weixin://wxpay/bizpayurl?...),
微信扫后才能直接弹出付款密码;禁止再套 HTTPS 中转页。
"""
from jituan.services.alipay_pay import qr_link_to_base64
bridge = build_native_bridge_url(dingdanid)
return {
# 复制支付链接:与同行一致,官方 weixin://wxpay/bizpayurl?...
'qr_code': code_url,
# 展示用二维码:HTTPS 中转,便于微信「扫一扫-相册」识别
'qr_image': qr_link_to_base64(bridge),
'bridge_url': bridge,
'qr_image': qr_link_to_base64(code_url),
'pay_method': PAY_METHOD_WECHAT_NATIVE,
}
@@ -81,7 +73,7 @@ def generate_wechat_native_pay_params(
'[WX_NATIVE] reuse code_url dingdan=%s club=%s scene=%s',
dingdanid, club_id, scene,
)
return _native_pay_response(dingdanid, cached_url)
return _native_pay_response(cached_url)
pay_cfg = get_wechat_v2_config(club_id)
log_wechat_v2_pay_diag(
@@ -145,4 +137,4 @@ def generate_wechat_native_pay_params(
'[WX_NATIVE] unifiedorder ok dingdan=%s club=%s mch=%s scene=%s',
dingdanid, pay_cfg.get('club_id'), mch_id, scene,
)
return _native_pay_response(dingdanid, code_url)
return _native_pay_response(code_url)