pay: submit.php 直出收银台页(new-api 易支付对接)
- submit.php 验签建单后不再 302,直接渲染自包含收银台 HTML, 支付宝二维码由服务端 skip2/go-qrcode 生成 PNG data URL 内嵌 - 新增公开轮询端点 /cashier-status(页面经 /api 前缀访问), 与 PaySvc.CashierStatus 共用 cashierStatusReply - Cashier.vue 收银台页同步改版:取景框二维码、倒计时进度条, 去掉跳上游收银台的外链 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
@@ -402,18 +402,11 @@ func (s *PaySvc) watchLoop(st *fun.Stream[dto.PayCashierStatusView], tradeNo str
|
||||
|
||||
// CashierStatus 收银台轮询:已支付且配置了 return_url 时返回签名回跳地址。
|
||||
func (s *PaySvc) CashierStatus(d dto.PayCashierDto) (dto.PayCashierStatusView, error) {
|
||||
o, err := s.Store.Q().GetPayOrderByTradeNo(context.Background(), strings.TrimSpace(d.TradeNo))
|
||||
status, returnURL, err := cashierStatusReply(s.Store, strings.TrimSpace(d.TradeNo))
|
||||
if err != nil {
|
||||
return dto.PayCashierStatusView{}, fun.Error(4004, "订单不存在")
|
||||
}
|
||||
res := dto.PayCashierStatusView{Status: o.Status}
|
||||
if o.Status == payStatusPaid && o.ReturnUrl != "" {
|
||||
pid, key, err := payMerchant(s.Store)
|
||||
if err == nil {
|
||||
res.ReturnUrl = buildSignedURL(o.ReturnUrl, notifyParams(o, pid), key)
|
||||
}
|
||||
}
|
||||
return res, nil
|
||||
return dto.PayCashierStatusView{Status: status, ReturnUrl: returnURL}, nil
|
||||
}
|
||||
|
||||
func toPayOrderView(r db.PayOrder) dto.PayOrderView {
|
||||
|
||||
Reference in New Issue
Block a user