in src/main/java/com/alibaba/yjopenapi/client/api/ApiClient.java [670:712]
public static Map<String, String> prepareSignHeader(Map<String, String> queryParams, Map<String, Object> formParams, String method, Configuration configuration)
throws ApiException {
String nonce = UUID.randomUUID().toString().replaceAll("-", "");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
df.setTimeZone(new SimpleTimeZone(0, "GMT"));
String timestamp = df.format(new Date());
String signatureMethod = configuration.getSignatureMethod();
String signatureVersion = configuration.getSignatureVersion();
String accessKey = configuration.getAccessKey();
Map<String, String> parameters = new HashMap<String, String>();
// 加入公共请求参数
parameters.put("SignatureMethod", signatureMethod);
parameters.put("SignatureNonce", nonce);
parameters.put("SignatureVersion", signatureVersion);
parameters.put("AccessKey", accessKey);
parameters.put("Timestamp", timestamp);
if (queryParams != null && !queryParams.isEmpty()) {
parameters.putAll(queryParams);
}
if (formParams != null && !formParams.isEmpty()) {
for (Entry<String, Object> param : formParams.entrySet()) {
parameters.put(param.getKey(), parameterToString(param.getValue()));
}
}
try {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Signature", md5(getSignRaw(parameters, method, configuration.getSecretKey())));
headers.put("Accesskey", accessKey);
headers.put("Signaturenonce", nonce);
headers.put("Signatureversion", signatureVersion);
headers.put("Timestamp", timestamp);
headers.put("Signaturemethod", signatureMethod);
return headers;
} catch (Exception e) {
throw new ApiException(e);
}
}