apiSignRequest static method

String apiSignRequest(
  1. Map<String, dynamic> paramsMap,
  2. String apiSecret
)

Implementation

static String apiSignRequest(
    Map<String, dynamic> paramsMap, String apiSecret) {
  List<String> paramsArr = <String>[];
  paramsMap.removeWhere((key, value) => value == null);
  var sortedParams = paramsMap.keys.whereType<String>().toList()..sort();
  for (var key in sortedParams) {
    var value = paramsMap[key];
    String? paramValue;
    if (value is List<String>) {
      if (value.isNotEmpty) {
        paramValue = value.toString(); //.join(',');
      } else {
        continue;
      }
    } else {
      if (value != null) {
        paramValue = value.toString();
      }
    }
    if (paramValue != null) {
      paramsArr.add('$key=${paramValue.replaceAll(r'\', '')}');
    }
  }
  var toSign = '${paramsArr.join('&')}$apiSecret';
  return hex.encode(sha1.convert(utf8.encode(toSign)).bytes);
}