收藏
回答

小程序 getUserEncryptKey invalid signature?

https://api.weixin.qq.com/wxa/business/getuserencryptkey?access_token=75_Z80V_-_Tqd9pLYXdVvr8UfbwVAPOEC36h6jbE9z35IWtlCCEXcNr8P3NUXBNLAMOUZFUIAM2Qhg5ri6HIteK4WqtjkP9b_J9cuOJLvejlS5cPgTB4iqhwf8TU9cAFUeADAJOD

参数:

access_token:75_Z80V_-_Tqd9pLYXdVvr8UfbwVAPOEC36h6jbE9z35IWtlCCEXcNr8P3NUXBNLAMOUZFUIAM2Qhg5ri6HIteK4WqtjkP9b_J9cuOJLvejlS5cPgTB4iqhwf8TU9cAFUeADAJOD

openid:oZeIR0WhrKYK4sUde-ETXObpc-I0

signature:ab9193c40b5ffb84bda074d8468caf5981fa9990f5b46736b2e01100fe6a7a05

sig_method:hmac_sha256



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

2 个回答

  • momo
    momo
    2023-12-06

    这些参数不是 form body ,请将参数填写在 params 中。

    2023-12-06
    有用 2
    回复 1
    • 皮敬伟
      皮敬伟
      2023-12-06
      好了,这这个参数问题,坑死了
      2023-12-06
      回复
  • 皮敬伟
    皮敬伟
    2023-12-05

    我确认access_token、openid都是正确无误的,signature的实现代码如下:

    public static void main(String[] args) {

            try {

                String secretKey = "vTLGsnYI6fqOFqRmTocWlQ==";  // 替换为实际的密钥

                String data = "";  // 空串

                // 使用HMAC SHA-256算法

                Mac sha256Hmac = Mac.getInstance("HmacSHA256");

                SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), "HmacSHA256");

                sha256Hmac.init(secretKeySpec);

                // 计算HMAC值

                byte[] hmacBytes = sha256Hmac.doFinal(data.getBytes(StandardCharsets.UTF_8));

                // 将HMAC值转换为小写的hex字符串

                StringBuilder hexStringBuilder = new StringBuilder();

                for (byte b : hmacBytes) {

                    hexStringBuilder.append(String.format("%02x"b));

                }

                String hexHmac = hexStringBuilder.toString();

                System.out.println("HMAC SHA-256: " + hexHmac);

            } catch (NoSuchAlgorithmException | InvalidKeyException e) {

                e.printStackTrace();

            }

        }



    尝试了很多遍,大写小写各种都试过了,就是不行,invalid signature,恳请官方有没有人给看一看,找不到其他问题了,也不知道那从哪开始排查问题了


    2023-12-05
    有用
    回复
登录 后发表内容