收藏
回答

requestVirtualPayment:fail SIGNATURE_INVALID !?

我参考微信官方提供的python文档,写了一份java的签名方法,但是一直提示签名错误,辛苦帮我看一下哪里写的有问题吗?以下是签名代码:

public String signature(String postBody, String sessionKey) throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
    String needSignMessage = postBody;
    Mac sha256Hmac = Mac.getInstance("HmacSHA256");
    SecretKeySpec secretKey = new SecretKeySpec(sessionKey.getBytes("UTF-8"), "HmacSHA256");
    sha256Hmac.init(secretKey);
    byte[] hashBytes = sha256Hmac.doFinal(needSignMessage.getBytes("UTF-8"));
    return Hex.encodeHexString(hashBytes);
}

@微信官方

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

2 个回答

  • Mure
    Mure
    07-17

    你好,解决了吗……

    07-17
    有用
    回复
  • guor
    guor
    2023-09-21

    我也是这样。突然的。。

    2023-09-21
    有用
    回复 3
    • guor
      guor
      2023-09-21
      发现问题了,因为签名用的openid是错的导致
      2023-09-21
      回复
    • 敏杰-D
      敏杰-D
      2023-12-28回复guor
      我更新为了你的方法。可是还是报签名错误。我的openid是对的也是有问题的。能否告诉我一下你如何解决的
      2023-12-28
      回复
    • guor
      guor
      03-12回复敏杰-D
      也有可能是sessionKey的问题,要确保你的sessionKey是使用的最新的,没有其他地方获取过最新的
      03-12
      回复
登录 后发表内容