API v3密鑰是用于平臺(tái)證書解密、回調(diào)信息解密,修改API v3密鑰對(duì)交易沒影響
受到美國法律的約束,早期Java的運(yùn)行時(shí)限制了JCE支持的密鑰長(zhǎng)度,即默認(rèn)不支持256位的AES。解決的方法有三個(gè):
Security.setProperty("crypto.policy", "unlimited");
$JAVA_HOME/lib/security
目錄下的對(duì)應(yīng)的local_policy.jar
和US_export_policy.jar
Java9及以上,均無限制。
加密使用的AES-GCM包含了Galois Message Authentication Code (GMAC)的消息認(rèn)證機(jī)制。解密時(shí)會(huì)對(duì)數(shù)據(jù)的完整性進(jìn)行校驗(yàn)。出現(xiàn)tag mismatch異常,表示解密時(shí)的消息認(rèn)證失敗。通常有三種可能:
開發(fā)者可以參考我們的示例代碼 。
這個(gè)錯(cuò)誤出現(xiàn)在上送參數(shù)需要敏感信息加密的接口中。請(qǐng)參考申明加密使用的平臺(tái)證書
當(dāng)證書序列號(hào)錯(cuò)誤或者不是請(qǐng)求商戶號(hào)對(duì)應(yīng)的平臺(tái)證書時(shí),微信支付會(huì)返回問題中的錯(cuò)誤提示。請(qǐng)檢查: