fix: 微信支付,接口测试问题修复。

This commit is contained in:
tianyongbao
2026-01-19 14:29:42 +08:00
parent 3fc42ac5b9
commit 4e5c94b427
3 changed files with 31 additions and 0 deletions

View File

@@ -244,6 +244,12 @@ public class WeixinController extends BaseController {
return R.fail("创建微信预支付订单失败");
}
// 7.1 更新订单的prepayId
boolean updated = payOrderBusinessService.updatePrepayId(orderId, prepayId);
if (!updated) {
log.warn("更新订单prepayId失败: orderId={}, prepayId={}", orderId, prepayId);
}
// 8. 生成JSAPI支付参数
String appId = wxMaProperties != null && wxMaProperties.getAppId() != null ?
wxMaProperties.getAppId() : "";

View File

@@ -73,4 +73,13 @@ public interface PayOrderBusinessService {
* @return 设备充值记录列表
*/
List<PayDevice> queryPayDevicesByOrderId(Long orderId);
/**
* 更新订单的预支付交易会话标识
*
* @param orderId 订单ID
* @param prepayId 预支付交易会话标识
* @return 是否更新成功
*/
boolean updatePrepayId(Long orderId, String prepayId);
}

View File

@@ -93,6 +93,7 @@ public class PayOrderBusinessServiceImpl implements PayOrderBusinessService {
order.setTradeType("JSAPI");
order.setAttachment(String.valueOf(payId)); // 设置支付选项ID
order.setNotifyUrl(notifyUrl); // 设置支付回调通知URL
order.setPrepayId(""); // 初始化为空字符串待微信支付API调用后更新
payOrderMapper.insert(order);
@@ -241,6 +242,21 @@ public class PayOrderBusinessServiceImpl implements PayOrderBusinessService {
);
}
@Override
public boolean updatePrepayId(Long orderId, String prepayId) {
if (orderId == null || prepayId == null || prepayId.isEmpty()) {
return false;
}
int rows = payOrderMapper.update(null,
new LambdaUpdateWrapper<PayOrder>()
.eq(PayOrder::getId, orderId)
.set(PayOrder::getPrepayId, prepayId)
);
return rows > 0;
}
/**
* 计算新的到期时间
*