注意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上配置好了,所以这里注释掉了。
这样配置过后,模拟器打开支付宝沙箱扫码,依然出现表单,但是在浏览器打开过后成功出现支付页面,输入沙箱账号密码后成功支付。
参考资料: 学成在线day11选课 支付(集成新版沙箱环境,亲测可用)