签名生成

签名流程:

  1. 请求body中参数按照首字母顺序排序,参数与值用=进行拼接,多个参数用&依次拼接为字符串

  2. 使用HmacSHA256算法用秘钥(APPSECRET)对字符串进行签名得到sign参数


	MchCreateOrderDto mchOrderDto = new MchCreateOrderDto();
		JSONObject mchOrderJson =  SONObject.from(mchOrderDto);

        Map<String, Object> sortedMap = new TreeMap<>(mchOrderJson);

        StringBuilder sb = new StringBuilder();
        for (Map.Entry<String, Object> entry : sortedMap.entrySet()) {
            sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
        }
        String signStr = sb.substring(0, sb.length() - 1);

        HMac hmac = SecureUtil.hmac(HmacAlgorithm.HmacSHA256, token.getBytes());
		String sign = hmac.digestHex(signStr);

最后更新于