From a2b734368b67c26d749e2818678b6af3fce59e9b Mon Sep 17 00:00:00 2001 From: zzlgreat Date: Sun, 14 Dec 2025 14:26:01 +0800 Subject: [PATCH] update pay ui --- app.py | 12 +++++++-- .../MiniProgramLauncher/WxOpenLaunchWeapp.js | 25 +++++++++++-------- src/services/miniprogramService.js | 2 +- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/app.py b/app.py index 8d3743e9..ece5f162 100755 --- a/app.py +++ b/app.py @@ -4956,10 +4956,13 @@ def generate_jssdk_signature(url, appid, appsecret): def api_wechat_jssdk_config(): """获取微信 JS-SDK 签名配置(用于开放标签)""" try: + print(f"[JS-SDK Config] 收到请求") data = request.get_json() or {} url = data.get('url') + print(f"[JS-SDK Config] URL: {url}") if not url: + print(f"[JS-SDK Config] 错误: 缺少 url 参数") return jsonify({ 'code': 400, 'message': '缺少必要参数 url', @@ -4969,8 +4972,11 @@ def api_wechat_jssdk_config(): # URL 校验:必须是允许的域名 from urllib.parse import urlparse parsed = urlparse(url) - allowed_domains = ['valuefrontier.cn', 'www.valuefrontier.cn', 'localhost', '127.0.0.1'] - if parsed.netloc.split(':')[0] not in allowed_domains: + # 扩展允许的域名列表,包括 API 域名 + allowed_domains = ['valuefrontier.cn', 'www.valuefrontier.cn', 'api.valuefrontier.cn', 'localhost', '127.0.0.1'] + domain = parsed.netloc.split(':')[0] + print(f"[JS-SDK Config] 解析域名: {domain}") + if domain not in allowed_domains: return jsonify({ 'code': 400, 'message': 'URL 域名不在允许范围内', @@ -4982,11 +4988,13 @@ def api_wechat_jssdk_config(): url = url.split('#')[0] # 生成签名(使用公众号配置) + print(f"[JS-SDK Config] 开始生成签名...") config = generate_jssdk_signature( url=url, appid=WECHAT_MP_APPID, appsecret=WECHAT_MP_APPSECRET ) + print(f"[JS-SDK Config] 签名生成完成: {config is not None}") if not config: return jsonify({ diff --git a/src/components/MiniProgramLauncher/WxOpenLaunchWeapp.js b/src/components/MiniProgramLauncher/WxOpenLaunchWeapp.js index f3d5d197..533c175a 100644 --- a/src/components/MiniProgramLauncher/WxOpenLaunchWeapp.js +++ b/src/components/MiniProgramLauncher/WxOpenLaunchWeapp.js @@ -133,26 +133,31 @@ const WxOpenLaunchWeapp = ({ ...buttonStyle, }; - // 加载中状态 + // 加载中状态 - 显示可点击的按钮,避免用户等待太久 if (loading) { return ( - - - 正在初始化... - + + {typeof children === 'string' ? children : '打开小程序'} + ); } - // 错误状态 + // 错误状态 - 提供重试选项 if (error) { return ( - {error} + 点击重试 ); } diff --git a/src/services/miniprogramService.js b/src/services/miniprogramService.js index 758a0612..6e552685 100644 --- a/src/services/miniprogramService.js +++ b/src/services/miniprogramService.js @@ -7,7 +7,7 @@ import { getApiBase } from '@utils/apiConfig'; const api = axios.create({ baseURL: getApiBase(), - timeout: 10000, + timeout: 30000, // 增加到 30 秒,因为首次需要从微信 API 获取 access_token 和 jsapi_ticket withCredentials: true, });