在支付宝沙箱支付中,在测试创建一个交易订单时可能会产生如下的报错信息:
2023-06-27 08:57:30.795 ERROR 20708 --- [ main] com.alipay.easysdk.kernel.util.Signer : 验签遭遇异常,content=null sign=null publicKey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhShAMppS4BktsC4nlEX0V1BM1b5/wKy8wzUEIoHjUxrV9r08AzpIbqSnh4zXjmcsb2olHxlVFJsCnthxB1ev3qEx6qPwBxTYJdr8FdsEuhqCO5+i4YPDxZrjgSh+skcUFkNI6JkeRSLF3604od8rWI2AaqgLl9OSB0g9rvp1MrTNwiAJb9jMhvC6yYxCGpdnnov1rlt0WhqiMpfs/FQdRUkdUFRnmxwgSc9vwWN3FF7y5CzM6nv0EvIJiOMcNe0eSPAxVSe+bcNQ2gi8oVZ3NpdOGGs93xA0JEFva2AgQ5NF6t/ioe9RSdpQe0gVhyN8CC+BDuhonVhYqbzC4IQ2TwIDAQAB reason=null
只要是支付时出现验签遭遇异常,主要是因为支付配置类中的属性配置问题:
在上述中都是需要在支付宝配置类中进行替换的属性值,支付宝配置类如下
```java
/**
* 获取支付宝的配置(沙箱环境)
*
* @return 支付宝的配置
*/
public static Config getConfig() {
Config config = new Config();
config.protocol = "https";
// 替换为自己的网关的地址 openapi-sandbox.dl.alipaydev.com
config.gatewayHost = "openapi-sandbox.dl.alipaydev.com";
config.signType = "RSA2";
// 替换为自己的APPID号
config.appId = "9021000122694432";
// 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
config.merchantPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCKv1qqx0m79LNnU9mAF4pfi9AwvYu8ueCpdTsen3yK6N04fzAD62nu2KJD/8+nBfaIJpEgZhHQn7q3n4Tqiu6QgAnqIFONKHqX8pSQ+76YXLyCNgXAU5Pe8m6XB3o6aRhMXumhLqu6+PXMFmU/xu0RWTkm8Sza90WjpkyD4Es8u2yth3Ufy+v+roAziCHg+V3lxZqasbhDb4tGc2XtoiYs/A1jsh3ewpYyoZpMvgdITQwS/fZsHnN7TpBn/URCufHKhjjfW2VEQlAKnHVqBYH5RZX8kmmPUPrrtSDVF+kYQ8M0fx4cw9WPYODPp9sk5HXSrAHKdFCpzPR3liexAniFAgMBAAECggEABM7Stn5HaNL28IqwS8cFDYCLy1SWJgkO5vBgBxShvTKKj+2gXVJoDlXFcbPIn1IOk/M6LjQ7Q851Ku3FLld4Itu8/Db4jjir3t4SFeATX7Y+9ggnNN3wjtY5zNP+gU2pAOR9Fg/G9aiw48yW35nmFybPWzEaS9Arwpr9pcg88zLCZoEHbwB5LgLGYPmt4dgNRtb3KyFA7bMZQMR34bfKutukJ4Irrl2UZJxgDTHbSpPLwUbjAmlg8tHmGOMSxXWba0iSwZlT6aiOx1OoUST76UzBeOFgss2TBVqtlK/ANflg8ma3zoEMi2LAS42A/KQ7NRfJymO11tdwgLhRnfHctQKBgQC9TLv+A2QD9Kb2emUtC1v+tqeHxXCnVuVK2zP2m8WEJRvETZUF5TvMgYXuKk8kaVnvIcllRtDrX/aAsHKJkZGZktsyP140y9UR0prLTAcynmwWsEYcDPPWXKuTVtqv5jdPFr/5IypEz/X+H5o+MWJMDd+DLe9DzUxCANoA9oPt7wKBgQC7orDeehdmWZ5vCQ1xHKOrvKxx9nXtiIyfzMlzW14ar8unwlJkOsPpklwwhd4XdwG63NemFDzOw29nqsjhLyRps8enWjPNuWqZ4LUp+Gv8W1aJJWyz2AEtspRwJLKVGRHfkY2/RXsC48tqJlM3e1F7ki97GMy3zdEk+aEr/zP0ywKBgQCKFnLAXjrUQ+CTxj8N985Y5WcaPKXr/BBxZavnRkR0HBnAPhPqZAkWKpnHXaez2QIY1d2y+lCmkq8fuxciUUUT8TPi2KThAJviT25JxKEvhK82ccoC5lPtWFZ0uZP3YomQMPlDRSqtXcKFaQo8OgwJjMkySQzTuevZ7gMZVrpwkwKBgBSa+CtmYv11aAWvi89ZIswwSwu00hyEu1StK45EgWAS4B2LJHsnTO5wiTk26j3Pbtwzdmchn8/g/HH4+lhoUepduNYy/K9h5kgBukNiqZEsAqPK/VX+qZp4Gv75uLbQ6vqPRG611Z1qoKMGlGrqWvdkBVzSS2D/9DDITR/ExdLjAoGAAt5gWEY9S6Ap4blLDovwnmxwCUwrAziYt4VvUnf2OQM3ij+wlihbIoleTymVACR5UWw8Ecv3xgQv2w5rTYNF27b9gFmWyigDiAJVeQhLYT1/VQJVJxi3cYuAYBHoD0v4iXtbcGTU65dp4EjUm61cnsTjlw=";
//注:证书文件路径支持设置为文件系统中的路径或CLASS_PATH中的路径,优先从文件系统中加载,加载失败后会继续尝试从CLASS_PATH中加载
// config.merchantCertPath = "<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt -->";
// config.alipayCertPath = "<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt -->";
// config.alipayRootCertPath = "<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt -->";
//注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
config.alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhShAMppS4BktsC4nlEX0V1BM1b5/wKy8wzUEIoHjUxrV9r08AzpIbqSnh4zXjmcsb2olHxlVFJsCnthxB1ev3qEx6qPwBxTYJdr8FdsEuhqCO5+i4YPDxZrjgSh+skcUFkNI6JkeRSLF3604od8rWI2AaqgLl9OSB0g9rvp1MrTNwiAJb9jMhvC6yYxCGpdnnov1rlt0WhqiMpfs/FQdRUkdUFRnmxwgSc9vwWN3FF7y5CzM6nv0EvIJiOMcNe0eSPAxVSe+bcNQ2gi8oVZ3NpdOGGs93xA0JEFva2AgQ5NF6t/ioe9RSdpQe0gVhyN8CC+BDuhonVhYqbzC4I";
//可设置异步通知接收服务地址(可选)
config.notifyUrl = "https://www.test.com/callback";
//可设置AES密钥,调用AES加解密相关接口时需要(可选)
config.encryptKey = "m4ZPLAvbm17F3PTE8YUASQ==";
return config;
}
在以上的配置类中有几个参数是一定要改为自己的参数 具体参照如下
以上参数全部更改为自己的参数值就可以了,遇到的问题也就迎刃而解了!