支付宝沙箱扫码页面显示html表单,不跳转,且用浏览器打开依然无法支付
解决办法
注意AlipayConfig.java文件中的请求网关地址是否是最新的,因为复制的配置当中可能是以前的地址:
以前的地址:https://openapi.alipaydev.com/gateway.do
新的地址:https://openapi-sandbox.dl.alipaydev.com/gateway.do
(2024.5.27配置)
完整AlipayConfig.java如下:
public class AlipayConfig {
// 商户appid
// public static String APPID = "";
// 私钥 pkcs8格式的
// public static String RSA_PRIVATE_KEY = "";
// 服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = "http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/notify_url.jsp";
// 页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址
public static String return_url = "http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/return_url.jsp";
// 请求网关地址:旧
// public static String URL = "https://openapi.alipaydev.com/gateway.do";
public static String URL = "https://openapi-sandbox.dl.alipaydev.com/gateway.do";//新
// 编码
public static String CHARSET = "UTF-8";
// 返回格式
public static String FORMAT = "json";
// 支付宝公钥
// public static String ALIPAY_PUBLIC_KEY = "";
// 日志记录目录
public static String log_path = "/log";
// RSA2
public static String SIGNTYPE = "RSA2";
}
这里我的APPID、ALIPAY_PUBLIC_KEY、RSA_PRIVATE_KEY都已经在nacos上配置好了,所以这里注释掉了。
这样配置过后,模拟器打开支付宝沙箱扫码,依然出现表单,但是在浏览器打开过后成功出现支付页面,输入沙箱账号密码后成功支付。