pay: submit.php 回到 302,收银台页落在 /cashier.php

直出页面时 POST 表单刷新会丢/重复提交。改为 PRG:
submit.php 建单后 302 到 /cashier.php?trade_no=(后端渲染同一
收银台页,按订单当前状态展示,刷新安全);nginx 放行 cashier.php。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
2026-11-02 23:45:45 +08:00
co-authored by Devin
parent 2f3bd7fc7b
commit e54f989f98
4 changed files with 19 additions and 8 deletions
+3 -6
View File
@@ -12,18 +12,15 @@ import (
"github.com/cyi-cc/cyi-box/backend/internal/store"
)
// paySubmitHandler GET/POST /submit.php:验签建单后直接渲染收银台页(无跳转)。
// paySubmitHandler GET/POST /submit.php:验签建单后 302 到收银台页(PRG,刷新安全)。
func PaySubmitHandler(st *store.Store, up *payx.Client) fun.RouteHandler {
return func(c *fun.RouteCtx) error {
order, err := epayCreateOrder(c, st, up)
if err != nil {
return epayFail(c, err)
}
o, err := st.Q().GetPayOrderByTradeNo(context.Background(), order.TradeNo)
if err != nil {
return epayFail(c, err)
}
return renderCashier(c, o)
c.RequestCtx.Redirect("/cashier.php?trade_no="+order.TradeNo, 302)
return nil
}
}