apiSignRequest static method
String
apiSignRequest(
- Map<String, dynamic> paramsMap,
- String apiSecret, {
- int? signatureVersion = defaultSignatureVersion,
})
Implementation
static String apiSignRequest(Map<String, dynamic> paramsMap, String apiSecret, {int? signatureVersion = defaultSignatureVersion}) {
paramsMap.removeWhere((key, value) => value == null || _excludeKeys.contains(key));
String queryString = (paramsMap.keys.whereType<String>().toList()..sort())
.where((key) => paramsMap[key] is List<String> ? (paramsMap[key] as List<String>).isNotEmpty : paramsMap[key] != null)
.map((key) {
var value = paramsMap[key].toString().replaceAll(r'\', '');
if (signatureVersion == 2) {
value = value.replaceAll('&', '%26');
}
return '$key=$value';
}).join('&');
return hex.encode(sha1.convert(utf8.encode(queryString + apiSecret)).bytes);
}