收藏
回答

JSAPI支付回调解密一直失败

你好 我收到的微信支付回调是这个{"id":"a6bc7f91-9cdc-5104-9647-da401294636c","create_time":"2025-03-04T14:01:58+08:00","resource_type":"encrypt-resource","event_type":"TRANSACTION.SUCCESS","summary":"支付成功","resource":{"original_type":"transaction","algorithm":"AEAD_AES_256_GCM","ciphertext":"nd90CDvo3B1K/4OjAYEHim5wvHUhje9dUTY5AJ1+vblPZNEkXHY36IbjHoHwRyv5S7hwiGw4Ea+NiBmSIibZMs3jBa8iwWAfT68eeTQJygYpGagmkmRNqZ2eYSl1QUwoTblMWl2AH09DRNXoLqtJmIZ2RV4HpXa5JgsxjV68GUXY5w940DfNNOEEaDUySFAVWTzq9VlfMQSQ2c72KTPDGf3NITZwSMvA7+WJ00xBs4QQhSI5qnpidYzCv/3BM3uQTPjWb/0XUB4Y66qL0Vj5Ja0+sNqAR7mpmdPI/W+lbVnBMXbLZnRM9oowABj9/TGAEytaOvWSSnvpgflOhVRTCccJ4pDZrx9S8/nUcczJIyLYmrcLs0R79jkKbYYtW7/Ur2trQ9PauKKRpdoDGmSYsiatb0YgDjnUUZNvH+lQpLtNfIyyeNfw6rzlKivSqGpgFa9LE6GyjEnq+UDi6+G7LppS04VlaMbI9dIsiyxqEXfxwMDvx8Xp5YHShGmzDYjWFsU6c1D9dJACAhVEpUZbVAyFeOMSAF9ps/ROgHhsm7oQkVzgesv4eQ==","associated_data":"transaction","nonce":"S0H3hjoFJNX9"}} 解密结果一直是Tag mismatch!

代码是这样的

String associatedData = "transaction";
String nonce = "S0H3hjoFJNX9";
String ciphertext = "nd90CDvo3B1K/4OjAYEHim5wvHUhje9dUTY5AJ1+vblPZNEkXHY36IbjHoHwRyv5S7hwiGw4Ea+NiBmSIibZMs3jBa8iwWAfT68eeTQJygYpGagmkmRNqZ2eYSl1QUwoTblMWl2AH09DRNXoLqtJmIZ2RV4HpXa5JgsxjV68GUXY5w940DfNNOEEaDUySFAVWTzq9VlfMQSQ2c72KTPDGf3NITZwSMvA7+WJ00xBs4QQhSI5qnpidYzCv/3BM3uQTPjWb/0XUB4Y66qL0Vj5Ja0+sNqAR7mpmdPI/W+lbVnBMXbLZnRM9oowABj9/TGAEytaOvWSSnvpgflOhVRTCccJ4pDZrx9S8/nUcczJIyLYmrcLs0R79jkKbYYtW7/Ur2trQ9PauKKRpdoDGmSYsiatb0YgDjnUUZNvH+lQpLtNfIyyeNfw6rzlKivSqGpgFa9LE6GyjEnq+UDi6+G7LppS04VlaMbI9dIsiyxqEXfxwMDvx8Xp5YHShGmzDYjWFsU6c1D9dJACAhVEpUZbVAyFeOMSAF9ps/ROgHhsm7oQkVzgesv4eQ==";
String apikey="";
byte[] aesKey = apikey.getBytes(StandardCharsets.UTF_8);
byte[] associatedDataBytes = associatedData.getBytes(StandardCharsets.UTF_8);
byte[] nonceBytes = nonce.getBytes(StandardCharsets.UTF_8);
// 开始解密
AesUtil aesUtil = new AesUtil(aesKey);
String decryptedString = aesUtil.decryptToString(associatedDataBytes, nonceBytes, ciphertext);
JSONObject decryptedJsonObj = JSONObject.parseObject(decryptedString);


回答关注问题邀请回答
收藏

2 个回答

  • 支付社区运营
    支付社区运营
    03-05

    这个错误是v3密钥和实际订单加密的密钥(商户后台设置的v3密钥)不对应导致的。下单接口不需要v3密钥的。需要自己检查下

    v3密钥是用于平台证书解密和回调解密的

    03-05
    有用
    回复
  • Memory (私信不回复)
    Memory (私信不回复)
    03-04

    大概率V3key不对

    03-04
    有用
    回复 2
登录 后发表内容