From 35902262133788acbfd7e3fece410819adac233f Mon Sep 17 00:00:00 2001 From: zzlgreat Date: Fri, 12 Dec 2025 01:16:04 +0800 Subject: [PATCH] update pay ui --- __pycache__/app.cpython-310.pyc | Bin 432275 -> 433127 bytes __pycache__/wechat_pay_worker.cpython-310.pyc | Bin 0 -> 2909 bytes app.py | 32 ++++++++++++------ 3 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 __pycache__/wechat_pay_worker.cpython-310.pyc diff --git a/__pycache__/app.cpython-310.pyc b/__pycache__/app.cpython-310.pyc index a8142f821a2dc3e397a73f8e1da7a5b47207b606..716914074edbd7d731270f39e32b37b71b9c7dbd 100644 GIT binary patch delta 27520 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 VTD)*21@szAe?5(ah1#de{{v*&rEdTL diff --git a/__pycache__/wechat_pay_worker.cpython-310.pyc b/__pycache__/wechat_pay_worker.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5e7f403011918241de1dc2df7f4425fd76591df GIT binary patch literal 2909 zcma)8Uu+ab7@wK_d)xLX*U}a&x{17;4@6`1p=pSTK!}Oup%UT=S&yA*xwf}=&Td<- zxssaJfc%L>KnbnTq9hUt#Ke$D3&a=Seeq#^Q|{V(>N{xTH?!C46 z@Av!Wa!pMZf^zR^SEgwTLVt-yeKDc&4m|#!7$J&Mh+;~Ha0<&eNfG&0QVPQZ>a0dF zQ{b&jYcO*T!;fG@JE%g{DV&N?jp|b=xmXCZN_T zYb{XQR=1MMPs;x0?Z|^&r`lMIwXjyUjkQgxsdf<$Yv&gz>=AZIdQlXes6kw<5ZAA@ z)e;cb-CA7Ro)eeFS|)ML!!Mh7Xaf&_u!c!g8~OW&BUjI|oh7ExH)JE?6E(}^Bf&^ z11Cd|T2(LQ>o=F~-grSTpA0izsB=W z)g6~lUnrfq9(CKVFE5-cefQ(iPdBR_Z^(6*9$qY+x^KVNd$7kY&o01u!I3Y{Uo2mn zu_{7_J+3NV)gr_wOdfc znlof=ox|uuL}TN|NrS2&0a+WxqbO+&cR+{{?CWSGDZqhd=oSulL{K|*G{|^0AZ|#f2a!hLu(EF{kL$ck$L_wXHMF8Gnvrvhh3NX{u9z=-y%E)zCw+0p5r~q z#?V@G#ufOKYN-a{rGv}}bEMNy>l@0YgHX%!j2DFJfS>b1jSgq?eyH@bAdKxh;j(;? zfo?S@@D^cOh1n)d8=4aPFmJ)*+h8JG8gYVbf`%CF!c!~j&^QO(W1TfL5TJo3(GfC^0TIwPRb~j_K?1mP z*WrPyiq;DIYBXVV$aaVmmv`^VlsBzDnd|KBy%?dG!Cv`68t zO7nhy_wL@!A`PW9$@{T4U%<_?*J7y2 zqZ`|L$Q$%>qn=&eRhON_J;{#Ha2%R*W!fwFQcfYs`JtLm2ggGlvN_{HXwVE7*)cTI z$9(w(4zw>b1nE*HC8->4L#R@Bp)$lEufnN~L|hO84OMm`6Qqo){|)o2NcDB16nT{k zWrk*V7XB>^u|4AK{g1(@#7vmj#4jtBVs@ATmx7J9Z!8 literal 0 HcmV?d00001 diff --git a/app.py b/app.py index f2d3cd78..40254f51 100755 --- a/app.py +++ b/app.py @@ -2269,14 +2269,20 @@ def check_order_status(order_id): 'message': '订单已过期' }) - # 调用微信支付API查询真实状态 + # 调用微信支付API查询真实状态(使用 subprocess 绕过 eventlet DNS 问题) try: - from wechat_pay import create_wechat_pay_instance - wechat_pay = create_wechat_pay_instance() + import subprocess - query_result = wechat_pay.query_order(order_no=order.order_no) + script_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'wechat_pay_worker.py') - if query_result['success']: + query_proc = subprocess.run( + [sys.executable, script_path, 'query', order.order_no], + capture_output=True, text=True, timeout=30 + ) + + query_result = json.loads(query_proc.stdout) if query_proc.stdout else {'success': False, 'error': '无返回'} + + if query_result.get('success'): trade_state = query_result.get('trade_state') transaction_id = query_result.get('transaction_id') @@ -2372,14 +2378,20 @@ def force_update_order_status(order_id): if not order: return jsonify({'success': False, 'error': '订单不存在'}), 404 - # 检查微信支付状态 + # 检查微信支付状态(使用 subprocess 绕过 eventlet DNS 问题) try: - from wechat_pay import create_wechat_pay_instance - wechat_pay = create_wechat_pay_instance() + import subprocess - query_result = wechat_pay.query_order(order_no=order.order_no) + script_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'wechat_pay_worker.py') - if query_result['success'] and query_result.get('trade_state') == 'SUCCESS': + query_proc = subprocess.run( + [sys.executable, script_path, 'query', order.order_no], + capture_output=True, text=True, timeout=30 + ) + + query_result = json.loads(query_proc.stdout) if query_proc.stdout else {'success': False, 'error': '无返回'} + + if query_result.get('success') and query_result.get('trade_state') == 'SUCCESS': # 强制更新为已支付 old_status = order.status order.mark_as_paid(query_result.get('transaction_id'))