fix: Native二维码改回官方weixin付款码,取消HTTPS中转
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
94f7a2fba9
commit
be42721fe6
1 file changed
+7
-15
@@ -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)
|
||||
Reference in new issue
Block a user