package com.deardhruv.swipevolley.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import java.util.TreeMap;
public class SignUtils {
public static String apiSignRequest(Map<String, Object> paramsToSign, String apiSecret) {
Collection<String> params = new ArrayList<String>();
for (Map.Entry<String, Object> param : new TreeMap<String, Object>(paramsToSign).entrySet()) {
if (param.getValue() instanceof Collection) {
params.add(param.getKey() + "="
+ StringUtils.join((Collection) param.getValue(), ","));
} else {
if (StringUtils.isNotBlank(param.getValue())) {
params.add(param.getKey() + "=" + param.getValue().toString());
}
}
}
String to_sign = StringUtils.join(params, "&");
MessageDigest md = null;
try {
md = MessageDigest.getInstance("SHA-1");
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("Unexpected exception", e);
}
byte[] digest = md.digest((to_sign + apiSecret).getBytes());
return StringUtils.encodeHexString(digest);
}
}