From f6cd0bc74763bad5d8ce2146723c783637026269 Mon Sep 17 00:00:00 2001 From: XingQue Date: Wed, 12 Aug 2026 19:39:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20H5=20=E7=82=B9=E5=8D=95=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E5=AF=86=E7=A0=81=E6=94=AF=E4=BB=98=E4=B8=AD=E8=BD=AC?= =?UTF-8?q?=E9=A1=B5=EF=BC=88=E8=90=BD=E5=9C=A8=E5=B7=B2=E7=99=BB=E8=AE=B0?= =?UTF-8?q?=20/hqhd/dingdan/=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- orders/urls.py | 3 +- orders/views/__init__.py | 2 + orders/views/payment.py | 10 +++ templates/wechat/h5_jsapi_pay.html | 102 +++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 templates/wechat/h5_jsapi_pay.html diff --git a/orders/urls.py b/orders/urls.py index f55e1b9..d93de9c 100644 --- a/orders/urls.py +++ b/orders/urls.py @@ -1,6 +1,6 @@ from django.urls import path from django.views.decorators.csrf import csrf_exempt -from .views import CreateOrderView, WechatPayNotifyView, AlipayPayNotifyView, alipay_pay_page, wx_native_pay_page, WxNativeScanPayView, \ +from .views import CreateOrderView, WechatPayNotifyView, AlipayPayNotifyView, alipay_pay_page, wx_h5_jsapi_pay_page, wx_native_pay_page, WxNativeScanPayView, \ PaymentFailView, PaymentVerifyView, ContinuePayView, DingdanHuoquView, DingdanXiangqingView, JiedanView, \ ShangpinLeixingView, ShangjiaPaifaView, ShangjiaDingdanHuoquView, ShangjiaJiesuanView, \ ShangjiaDingdanXiangqingView, ShangjiaChufaShenqingView, ShangjiaTuikuanShenqingView, \ @@ -24,6 +24,7 @@ urlpatterns = [ path('alipay-notify/', csrf_exempt(AlipayPayNotifyView.as_view()), name='老板下单支付宝支付回调'), path('fubei-notify/', csrf_exempt(FubeiPayNotifyView.as_view()), name='付呗支付回调'), path('alipay-pay/', csrf_exempt(alipay_pay_page), name='支付宝H5中转页'), + path('wx-h5-pay/', csrf_exempt(wx_h5_jsapi_pay_page), name='H5点单微信密码支付中转页'), path('wx-native-pay/', csrf_exempt(wx_native_pay_page), name='微信Native扫码中转页'), path('wx-native-scan-pay', WxNativeScanPayView.as_view(), name='微信小程序码扫码支付'), path('shibai', PaymentFailView.as_view(), name='老板支付失败接口'), diff --git a/orders/views/__init__.py b/orders/views/__init__.py index 9018354..3430b78 100644 --- a/orders/views/__init__.py +++ b/orders/views/__init__.py @@ -10,6 +10,7 @@ from .payment import ( CreateOrderView, ContinuePayView, alipay_pay_page, + wx_h5_jsapi_pay_page, wx_native_pay_page, WxNativeScanPayView, ) @@ -78,6 +79,7 @@ __all__ = [ "PaymentFailView", "WechatPayNotifyView", "AlipayPayNotifyView", "PaymentVerifyView", "CreateOrderView", "ContinuePayView", "alipay_pay_page", + "wx_h5_jsapi_pay_page", "wx_native_pay_page", "WxNativeScanPayView", "DingdanHuoquView", "DingdanXiangqingView", "JiedanView", diff --git a/orders/views/payment.py b/orders/views/payment.py index daac006..0bcbc88 100644 --- a/orders/views/payment.py +++ b/orders/views/payment.py @@ -530,6 +530,16 @@ def alipay_pay_page(request): return render(request, 'alipay/pay.html', {}) +def wx_h5_jsapi_pay_page(request): + """H5 点单密码支付中转页(落在已登记的 /hqhd/dingdan/ 授权目录)。 + + 不是扫码。仅把 WeixinJSBridge 调起挪到商户已配置的目录下, + 避免 /xqh5/ 报「当前页面的URL未注册」。 + 支付参数由同域 sessionStorage 传入(前端写入)。 + """ + return render(request, 'wechat/h5_jsapi_pay.html', {}) + + def wx_native_pay_page(request): """相册可扫的 HTTPS 中转页:OAuth 取服务号 openid → JSAPI → 直接出密码。 diff --git a/templates/wechat/h5_jsapi_pay.html b/templates/wechat/h5_jsapi_pay.html new file mode 100644 index 0000000..8d6c49d --- /dev/null +++ b/templates/wechat/h5_jsapi_pay.html @@ -0,0 +1,102 @@ + + + + + + 微信支付 + + + +
+ +
微信支付
+
正在调起支付...
+ +
+ + +