From e0a6c43965a7581a5dde90086251355c97302be2 Mon Sep 17 00:00:00 2001 From: chiyi Date: Mon, 2 Nov 2026 23:51:43 +0800 Subject: [PATCH] =?UTF-8?q?pay:=20=E4=BF=AE=E5=A4=8D=E6=94=B6=E9=93=B6?= =?UTF-8?q?=E5=8F=B0=E4=BA=8C=E7=BB=B4=E7=A0=81=E4=B8=8D=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=EF=BC=88#ZgotmplZ=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit html/template 会过滤 src 中的 data: URL,改用 template.URL 类型豁免。 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- backend/internal/service/cashier_page.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/internal/service/cashier_page.go b/backend/internal/service/cashier_page.go index 19a4719..0c346e1 100644 --- a/backend/internal/service/cashier_page.go +++ b/backend/internal/service/cashier_page.go @@ -137,7 +137,7 @@ type cashierPageData struct { TradeNo string Subject string Money string - QRDataURL string + QRDataURL template.URL // template.URL 豁免 html/template 对 data: URL 的过滤 ExpiredAt int64 Status int64 } @@ -153,7 +153,7 @@ func renderCashier(c *fun.RouteCtx, o db.PayOrder) error { } if o.Qrcode != "" { if png, err := qrcode.Encode(o.Qrcode, qrcode.Medium, 256); err == nil { - d.QRDataURL = "data:image/png;base64," + base64.StdEncoding.EncodeToString(png) + d.QRDataURL = template.URL("data:image/png;base64," + base64.StdEncoding.EncodeToString(png)) } } var buf bytes.Buffer