generateSignature2 static method

String generateSignature2(
  1. Map<String, dynamic> paramValues,
  2. List<String> ignoreParamNames,
  3. String appSecret
)

生成sign校验值 paramValues 参数值 ignoreParamNames 要忽略掉的参数名 appSecret appSecret @return

Implementation

static String generateSignature2(Map<String, dynamic> paramValues, List<String> ignoreParamNames, String appSecret) {
  try {
    StringBuffer sb = StringBuffer();
    List<String> paramNames = [];
    paramNames.addAll(paramValues.keys);
    if (ignoreParamNames.isNotEmpty) {
      for (var element in ignoreParamNames) {
        paramNames.remove(element);
      }
    }
    // 对参数名进行升排
    paramNames.sort((o1, o2) => o1.compareTo(o2));
    sb.write(appSecret);
    for (String paramName in paramNames) {
      dynamic value = paramValues[paramName].toString();
      if (value == null || value.isEmpty) {
        // 过滤空参数
        continue;
      }
      sb.write(paramName);
      sb.write(value.toString());
    }
    sb.write(appSecret);
    var content = const Utf8Encoder().convert(sb.toString());
    var digest = md5.convert(content);
    return digest.toString().toUpperCase();
  } catch (e) {
    return '';
  }
}