Мне удается сгенерировать правильные строки md5, которые соответствуют серверной стороне, сгенерированной md5, используя следующие функции.
Документация явно касается сортировки параметров, поэтому здесь это функция для этого.
sortByKey(params) {
let sortedObj = {}
Object.keys(params).sort().forEach((key) => sortedObj[key] = params[key])
return sortedObj;
}
Позже вы должны объединить и добавить SECRET_KEY и, наконец, применить функцию md5, например так:
getSig(params, secretKey) {
let sortedParams = this.sortByKey(params);
let concatenated = '';
Object.keys(sortedParams).forEach((key) => {
concatenated += (key + sortedParams[key]);
});
let sigString = secretKey + concatenated;
return md5(sigString);
}
Предполагая, что у вас есть следующие параметры, процесс идет следующим образом
// 1. For the given parameters, you have to sort them
method=rustici.registration.launch
regid=1551362579253
ts=20190228140259
appid=79V4XI0MTG
redirecturl=blank
// 2. The sorting results in
appid=79V4XI0MTG
method=rustici.registration.launch
redirecturl=blank
regid=1551362579253
ts=20190228140259
Обратите внимание, что ts param имеет формат (ГГГГММДДЧЧммсс).Пример: 20190228174550
// 3. Concatenate all sorted params
appid79V4XI0MTGmethodrustici.registration.launchredirecturlblankregid1551362579253ts20190228140259
// 4. Then prepend the secret_key to your concatenation
secret_key + appid79V4XI0MTGmethodrustici.registration.launchredirecturlblankregid1551362579253ts20190228140259
// 5. Finally apply md5 function
const sig = md5(secret_key + appid79V4XI0MTGmethodrustici.registration.launchredirecturlblankregid1551362579253ts20190228140259)
Создайте URL, чтобы сделать запрос, и вы должны быть в порядке.