fix(wechat): use wx.tenpay.com/f2f for web payment, weixin:// is not browser-openable

This commit is contained in:
yumoqing 2026-07-16 17:40:20 +08:00
parent 403cdd5de1
commit d4c9568673

View File

@ -1,18 +1,20 @@
params_kw.amount = float(params_kw.amount) params_kw.amount = float(params_kw.amount)
debug(f'recharge.dspy: {params_kw=}') debug(f'recharge.dspy: {params_kw=}')
try: try:
url = await create_payment(request, params_kw) code_url = await create_payment(request, params_kw)
if params_kw.provider == 'transfer': if params_kw.provider == 'transfer':
return { return {
"widgettype":"urlwidget", "widgettype":"urlwidget",
"mode":"replace", "mode":"replace",
"target":"app.sage_main_content", "target":"app.sage_main_content",
"options":{"url": url} "options":{"url": code_url}
} }
# weixin://wxpay/bizpayurl?pr=xxx → https://wx.tenpay.com/f2f?pr=xxx
pay_url = code_url.replace('weixin://wxpay/bizpayurl', 'https://wx.tenpay.com/f2f')
return { return {
"widgettype":"NewWindow", "widgettype":"NewWindow",
"options":{ "options":{
"url": url, "url": pay_url,
"height": "100%", "height": "100%",
"width":"100%" "width":"100%"
} }