提取根證書失敗AlipayRootCert Is Invalid
阿新 • • 發佈:2021-02-05
問題解決:當專案打為jar時,支付寶證書不能儲存在classes目錄下
最開始我的配置資訊如下所示:
ali.pay.appCertPath=classpath:appCertPublicKey_2021001166627070.crt
ali.pay.alipayCertPath=classpath:alipayCertPublicKey_RSA2.crt
ali.pay.alipayRootCertPath=classpath:alipayRootCert.crt
執行專案測試支付功能時,一直報證書檔案找不到,AlipayRootCert Is Invalid,我就納悶了,微信證書直接這麼儲存就測試通過,為什麼支付寶證書一直找不到呢?開始以為屬性搞錯了,我又再三檢查了實體類,如下:
package com.ltf.config; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import lombok.Data; /** * 支付寶支付商戶基本資訊 * @author xhz * */ @Data @Component @ConfigurationProperties(prefix = "ali.pay") public class AliPayProperties { /** * appId */ private String appId; /** * 應用私鑰 */ private String appPrivateKey; /** * 支付寶公鑰 */ private String aliPayPublicKey; /** * 應用公鑰證書路徑 */ private String appCertPath; /** * 支付寶公鑰證書路徑 */ private String alipayCertPath; /** * 支付寶根證書路徑 */ private String alipayRootCertPath; /** * 支付寶回撥地址 */ private String url; /** * 應用回撥地址 */ private String notifyUrl; /** * 編碼 */ private String charset; /** * 返回格式 */ private String format; /** * 加密型別 */ private String signType; @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE); } }
經過反覆對比,屬性確實沒錯呀,嘗試了各種辦法都不行,心態要炸了,後來我把證書copy出來,換了個路徑儲存
配置檔案資訊改為如下:
ali.pay.appCertPath=C:/alipay/appCertPublicKey_2021001166627070.crt
ali.pay.alipayCertPath=C:/alipay/alipayCertPublicKey_RSA2.crt
ali.pay.alipayRootCertPath=C:/alipay/alipayRootCert.crt
再次啟動專案並測試支付功能,這次終於測試通過了,真是坑呀!!!