package com.ruoyi.cai.trdpay; import cn.hutool.crypto.digest.DigestUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class PayMd5Util { public static MultiValueMap createParamsOfMap(Map params, String key) { MultiValueMap resp = new LinkedMultiValueMap<>(); List url = new ArrayList<>(); for (Map.Entry entry : params.entrySet()) { url.add(entry.getKey() + "=" + entry.getValue()); resp.add(entry.getKey(), entry.getValue()); } url = url.stream().sorted().collect(Collectors.toList()); String stringSignTemp = StringUtils.join(url, "&") + "&key=" + key; String sign = DigestUtil.md5Hex(stringSignTemp).toUpperCase(); url.add("sign=" + sign); resp.add("sign",sign); return resp; } public static String createParams(Map params, String key) { List url = new ArrayList<>(); for (Map.Entry entry : params.entrySet()) { url.add(entry.getKey() + "=" + entry.getValue()); } url = url.stream().sorted().collect(Collectors.toList()); String stringSignTemp = StringUtils.join(url, "&") + "&key=" + key; String sign = DigestUtil.md5Hex(stringSignTemp).toUpperCase(); url.add("sign=" + sign); return StringUtils.join(url, "&"); } public static String createParams(Map params, String key,String signName) { List url = new ArrayList<>(); for (Map.Entry entry : params.entrySet()) { url.add(entry.getKey() + "=" + entry.getValue()); } url = url.stream().sorted().collect(Collectors.toList()); String stringSignTemp = StringUtils.join(url, "&") + "&key=" + key; String sign = DigestUtil.md5Hex(stringSignTemp).toUpperCase(); url.add(signName + "=" + sign); return StringUtils.join(url, "&"); } }