fix(channel): 关单时间改取自订单,修复客户端不传时通道侧为null

微信/支付宝 PayService 原用 payParam.getExpiredTime()(客户端原始入参,可能为 null), 客户端不传 expiredTime(走默认30分钟)时子应用收不到关单时间。改用 order.getExpiredTime()(createOrder 已兜底默认30分钟), 与平台超时关单延时消息同源一致。
This commit is contained in:
DaxPay Dev
2026-07-05 21:32:44 +08:00
parent c588492087
commit 538f17f60e
3 changed files with 6 additions and 4 deletions

View File

@@ -54,8 +54,8 @@ public class AlipayPayService {
req.setOpenId(payParam.getOpenId());
// 通道通知地址: 始终使用平台生成的回调地址(支付宝→平台), 不使用 payParam.notifyUrl(语义为平台→商户)
req.setNotifyUrl(this.buildNotifyUrl(order));
// 关单时间透传, 子应用据此向支付宝设置 time_expire
req.setExpireTime(payParam.getExpiredTime());
// 关单时间取自订单(createOrder 已对 null 兜底默认30分钟), 子应用据此向支付宝设置 time_expire
req.setExpireTime(order.getExpiredTime());
req.setCredential(credential);
// 调用子应用

View File

@@ -55,7 +55,8 @@ public class WechatIsvPayService {
req.setOpenId(payParam.getOpenId());
req.setAttach(payParam.getAttach());
req.setNotifyUrl(this.buildNotifyUrl(order));
req.setExpireTime(payParam.getExpiredTime());
// 关单时间取自订单(createOrder 已对 null 兜底默认30分钟), 不用 payParam 原始入参
req.setExpireTime(order.getExpiredTime());
if (req.getMethod() == WechatPayMethod.H5) {
req.setWapUrl(payParam.getReturnUrl());
req.setWapName(payParam.getTitle());

View File

@@ -55,7 +55,8 @@ public class WechatPayService {
req.setAttach(payParam.getAttach());
// 通道通知地址: 始终使用平台生成的回调地址(微信→平台), 不使用 payParam.notifyUrl(语义为平台→商户)
req.setNotifyUrl(this.buildNotifyUrl(order));
req.setExpireTime(payParam.getExpiredTime());
// 关单时间取自订单(createOrder 已对 null 兜底默认30分钟), 不用 payParam 原始入参
req.setExpireTime(order.getExpiredTime());
// H5 场景信息(场景参数)
if (req.getMethod() == WechatPayMethod.H5) {
req.setWapUrl(payParam.getReturnUrl());