A:API v3密鑰:我不是(APIKey密鑰),我(對交易)沒有(影響),別找技術(shù)支持確認了。
A:受到美國法律的約束,早期Java的運行時限制了JCE支持的密鑰長度,即默認不支持256位的AES。解決的方法有三個:
● (推薦)升級Java 8u162+,默認使用ulimited policy
● Java 8u151和8u152,可以在你的程序中直接放開策略
Security.setProperty("crypto.policy", "unlimited");
● 其他版本,下載無限強度權(quán)限策略文件補丁包,并使用其中的文件覆蓋$JAVA_HOME/lib/security目錄下的對應(yīng)的local_policy.jar 和 US_export_policy.jar
Java9及以上,均無限制。
A:加密使用的AES-GCM包含了Galois Message Authentication Code (GMAC)的消息認證機制。解密時會對數(shù)據(jù)的完整性進行校驗。出現(xiàn)tag mismatch異常,表示解密時的消息認證失敗。通常有三種可能:
1、使用了錯誤的API v3密鑰,如使用了其他商戶號的密鑰,或者使用了APIv2的APIKey。
2、密文不正確。請檢查提交解密的密文和收到的密文。注意報文中的密文經(jīng)過了Base64編碼。
3、解密時接口遺漏傳入附加數(shù)據(jù)(associated_data)。
開發(fā)者可以參考我們的示例代碼。
A:這個錯誤出現(xiàn)在上送參數(shù)需要敏感信息加密的接口中。請參考申明加密使用的平臺證書。
當(dāng)證書序列號錯誤或者不是請求商戶號對應(yīng)的平臺證書時,微信支付會返回問題中的錯誤提示。請檢查:
1、加密使用的證書是否是微信支付平臺證書。有時會誤用商戶證書導(dǎo)致該錯誤。
2、是否是請求商戶對應(yīng)的微信支付平臺證書,如用了其他商戶號的平臺證書。
3、證書是否過期。請按照指引檢查證書是否過期,并更新并部署新證書。