From 55e335ea060aa072b099ba5c4abf1ceced2bec7f Mon Sep 17 00:00:00 2001 From: Therainclouds <245141853@qq.com> Date: Thu, 12 Feb 2026 23:35:51 +0800 Subject: [PATCH] n --- .../shop/__pycache__/views.cpython-312.pyc | Bin 70169 -> 70271 bytes backend/shop/views.py | 9 +++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/shop/__pycache__/views.cpython-312.pyc b/backend/shop/__pycache__/views.cpython-312.pyc index 25abb7c72a34ad250055e8dfe3f844ac4b0f494b..8db58d1c2a3ce03883fe97f01b65b3b989032922 100644 GIT binary patch delta 1862 zcmZ9Mdr(w$6vy}6y<8r<%YwV0Jmit2puz|^!%G3tbjAcVEJsI$mA%MK1pDnG#DJ`Z zl9I{z3s!3?9PyRtSl4FNM#W5xL_tGd*|ed~V7@2;6)O9k-7(Ai$LF4Ve&_Ywz31*~ z;GZ?{noAmuhk{+PkG4r4eW~#%pRNjy3!IJ8f0yS3(%M;I+|ip`RL3p7>ie# zw#=){+c>^VN3$%k0U1uOLJ_7Q>E(LkB;(}#@N%CrpSLsV3@?AWzg(k?G|!~-7lqL7 zu`1eVQG=eIumt!`F4wQuXDW=2dodI%N|Z|!#SjrC-?vQV!U)GIXO#LcAmUoXyCJy- zDPJ^(6iep35Rs5Vk{A*(k%qn3=gpg>RRu(1(PR)YL_;e}{oK)OFc%S#n4ce+e3?ZJ z3BI(WG6m9Q-%S$$lI7&hbpW2Uw<@E8cTf6B9oVJz=~M?_RR_1LLvN_P+w@V5rlZk^ z)*Z-e8x_~Cj=!M`*txhN=RoM5+_u2TqdD!m#OvzBk$!iUK5QD#nw;0qai15ZXbI9H zqueuiWlP))EiXPlP4>r>w#;tT_ zO%zm9QnLVj<#RQs1^)_QT7O}Aq!5vfu%K@P{lsd8R5^C1O@Ipd?q?eSw$L^8v!H^0 zRbL3}mh_w{n-J|oYjJpRQVu*u5~NgTUfIDA3_CuPewgP@Wzc{Ab|wVdh(8(n((sp>pB zE+8(_6=x<1O=zB_+s}-dvL4NNL<{0F;tHY_(Z&!FM7E;borsgP^Gx*fe9xw2_?D(O z`TeiKJ55oZ$1&N)U<0*{O)BD{SvRB(~SD*WszXRJnKpJ2;e;z(|(4g*V6LHWUjaVX?%u>OstRfTJ(kRS(DcTOy zUhhXg?N+<|#Zvy3k902)Vt_5d9XAYbWr*ONl4G$v9ucNZ5#dShVg!D+SknaiLI7HA zUjR$x8+M+94*F~Fd?=EmZ`#1C15+K50cg3=C%5Jb7WNf0N%ZQyM0w-wVazD+vqFvR zb7z3lRI#`SwX;PB4IBuhG52=CA-UyVGsl*(?xD!y|9rT@cQhNQN0XB$QciZ)}vOh>Tg-vcdn)LPyO3>0fkH$NzYhP5KrSd{u<4}t?T|JN_RO6gF+Bgu% z7QJ~ONci#JLUh95gK0d*3kY|F2BAlcML4qUSS<~aig<<<5t;JBAr81_Aiw#zAGobR zy+?F(>C+f^C~teZ5}3UHVSo0OQH@N6NSZnl2v6kYBlWxxjI~2+m5=~cwbNlXgwL?5#i`V^jW7X zVGD#?FDhXzblKv0Sk6J3wN8L+=(0W*z`$-xTtRf1&%#4(=Um||2gBA)9<0m9)+7}S zr{n4pTv~#=K=9S-@th+Th(yYHOA?DSMYHqwaJ0obFU`~AHf>Fzu_#|mCaY~5)u2`S c=J7BWYT`R};a7Fx0}99EAB$}JwLrLk0OS=yRsaA1 delta 1798 zcmZ9M3rtgI6vumd+e@L;qNSqfkcUMoC|Sg)MW<1xn^6SKW?0l(=vC_!@U|U}m5K8a zP}!KDSWFCRK&Qhw-52ecPC=cUIs}}K(wNDH_;!{FG9Qck&aFhZ+vL~NbN=Ubd%yd< zTCu%ap}C;Zgvi(x)LCk~cUTirAaCNy;Vp%9Tfr&?9HQFQN*Fj375}{obuNC{Y_jsE z&d{$00`Ku7}igOF;rMT3}6B+ z-LMV%gvjC&T4Gb0V^hkseia#7oc1;Zr(V?!s+d=uy)UL}ans-thq5p0OjklpPyHN= zJ+T{D!5_k>>t~u|KM&U;O~JDaTmu&|E1GMF1hk`-vkdfF@kTlDblIkA1(XnN*-R)V z^BFgj{beJelz7Y1K~IgJpWq{l*zFasvBF|5Vi95u`aU60;f9HHdxeLGBAT&t4ZtSy z%dV+VLXRc&JaUXVTAFmQRs+ZBjbq)QK7z@`h@<4j_pMM% z>P|dX|A>yC5a-C5lZk1k&^(Rk#zh_>dJxHo)fgCyxQJ*(G$EQ1ml%vu;zm?fAdZs> zb+7Y*lEhK>hT#lT_<~mCnVoh)^o8Ut&CL-cTYPnnmb#JrcUZ8NsOwG24rX4ZGwN+B zb!D-hB=4RqLrA}(|bI&jHpY)g7EZ4Az7luJUN$|@|jIF~!@#voBj zpN~VntRd~>LSF+J+nAx3ww1z?Ft9hNY#b7^72AwKTxalwaS?EAYQp!_|r?)wT_3aq`q}P*#AO*klU^C%I8e=4-NNa^1zXtw#W#MoncYIiW>Wf zcd<6UWmuh^Z5d3_*_O^{vUi2Oh3sfI(B;4T0K8;+`)qJfce@9|yx3Jr86;U`VaE(u zP4{<<p50uirEH#)^b|t9$;UaN3ypA+?rN))wJbH8r z%(4fwNObQdPC{KNN$!q5ZV76K9qRDLm zh=El1T7bzQ^PB}Z0trc&jcvp!h&CKxGGY>9IQkGb-Blcvz;O2n1>}LxQ>lOja+vCV z#=|1;xfcY1g?*h20zsL<tnl0l1ufTqi2`Oo+1M6cLbEQROD6sNYmP?~2BQ35#F!)r diff --git a/backend/shop/views.py b/backend/shop/views.py index 55e1891..85f75af 100644 --- a/backend/shop/views.py +++ b/backend/shop/views.py @@ -749,10 +749,8 @@ class OrderViewSet(viewsets.ModelViewSet): message_build = f"{wechat_config.app_id}\n{timestamp}\n{nonce_str}\n{package}\n" # 使用商户私钥签名 - # 这里的私钥加载逻辑需复用 get_wechat_pay_client 中的逻辑,或者直接从 wxpay 实例获取 (如果它暴露了) - # 简单起见,我们重新加载私钥 - private_key_str = wxpay._private_key # 假设 SDK 内部存储了 private_key (通常是 obj) - # 由于 SDK 内部处理复杂,我们尝试用 cryptography 库签名 + # 注意:WeChatPayV3 对象的私钥属性名可能随版本变化,或者被封装 + # 这里我们不直接访问私钥,而是利用 SDK 提供的 sign 方法 # 实际上 wechatpayv3 库提供了 sign 方法 signature = wxpay.sign(message_build) @@ -769,6 +767,9 @@ class OrderViewSet(viewsets.ModelViewSet): return Response({'error': '微信下单失败', 'detail': result}, status=400) except Exception as e: + import traceback + traceback.print_exc() + print(f"Prepay failed with error: {str(e)}") return Response({'error': str(e)}, status=500) @action(detail=False, methods=['get'])