fix(nezha): return_url 为空时兜底为 notify_url 的 origin(哪吒必填)
哪吒 pay/create 要求 return_url 必填;业务方未显式传时下单被拒(缺少参数 return_url)。 兜底用 notify_url 的 origin(pay 对外基址)保证合法非空。
This commit is contained in:
@@ -108,12 +108,21 @@ func (p *Provider) Create(ctx context.Context, req provider.CreateRequest) (*pro
|
||||
payType = "alipay" // 未指定聚合渠道类型时的默认值(alipay 是最常见通道)
|
||||
}
|
||||
|
||||
// 哪吒协议要求 return_url 必填(支付后浏览器跳回地址);业务方(pangolin)未显式传时,
|
||||
// 兜底用 notify_url 的 origin(即 pay 对外基址,如 https://pay.yanmeiai.com),保证合法非空。
|
||||
returnURL := req.ReturnURL
|
||||
if returnURL == "" {
|
||||
if u, e := url.Parse(p.notifyURL); e == nil && u.Host != "" {
|
||||
returnURL = u.Scheme + "://" + u.Host
|
||||
}
|
||||
}
|
||||
|
||||
params := map[string]string{
|
||||
"pid": p.pid,
|
||||
"type": payType,
|
||||
"out_trade_no": req.OutTradeNo,
|
||||
"notify_url": p.notifyURL,
|
||||
"return_url": req.ReturnURL,
|
||||
"return_url": returnURL,
|
||||
"name": req.Subject,
|
||||
"money": amount,
|
||||
"timestamp": strconv.FormatInt(time.Now().Unix(), 10),
|
||||
|
||||
Reference in New Issue
Block a user