各位为什么我之前还能运行今天就不可以了,我是uniapp➕ssm,我大模型搜出来是:微信 web-view 的缓存策略:
第一次打开支付页时,web-view 会缓存域名关联的会话,但若小程序重启 / 清理缓存,或支付宝回调超时,会导致回调页面「跳出」web-view,直接用支付宝浏览器打开;
支付宝的回调跳转规则:
支付宝回调returnUrl时,若检测到页面是「微信环境」,偶尔会强制跳转到支付宝浏览器(平台策略的临时调整,非代码问题)。这个问题我也不太懂
这是我的前端代码:
<view class="pay-page">
</view>
后端代码:public String alipayReturn(HttpServletRequest request,
HttpServletResponse httpResponse) throws IOException {
try {
// 1. 获取支付宝回调参数
Map<String, String> params = new HashMap<>();
Map<String, String[]> requestParams = request.getParameterMap();
for (String name : requestParams.keySet()) {
params.put(name, request.getParameter(name));
}
// 2. 验签(验证是支付宝的真实回调,防止伪造)
boolean signVerified = AlipaySignature.rsaCheckV1(
params,
Constant.ALIPAY_PUBLIC_KEY,
Constant.CHARSET,
Constant.SIGN_TYPE
);
// 3. 验签成功,处理业务(更新订单状态等)
if (signVerified) {
String outTradeNo = params.get("out_trade_no");
if (outTradeNo == null || outTradeNo.trim().isEmpty()) {
return "<h1>回调参数错误:订单号为空</h1>";
}
// 4. 用订单号处理业务(比如更新订单状态)
travelrouteservice.updateorderstaus(outTradeNo);
// 返回支付成功页面(可跳回小程序)
return "<html><body>" +
"<h1>支付成功!订单号:" + outTradeNo + "</h1>" +
"<p>3秒后返回小程序...</p>" +
"<script type='text/javascript' src='https://res.wx.qq.com/open/js/jweixin-1.3.2.js'></script>" +
"<script>" +
"setTimeout(() => {" +
" wx.miniProgram.redirectTo({" +
" url: '/pages/travelroute/oderdetail"+ outTradeNo + "'" +
" });" +
"}, 1000);</script>" +
"</body></html>";
} else {
return "<h1>支付验证失败!</h1>";
}
} catch (AlipayApiException e) {
e.printStackTrace();
return "<h1>回调处理失败:" + e.getMessage() + "</h1>";
}
}