Подпись генерируется как обычно в апи вызовах - для всех параметров кроме sig и access_token
function calcSignature(query) {
var i, keys = [];
for (i in query) {
keys.push(i.toString());
}
keys.sort();
var sign = "";
for (i = 0; i < keys.length; i++) {
var key = keys[i];
if (("sig" != key) && ("access_token" != key)) {
sign += keys[i] + '=' + query[keys[i]];
}
}
sign += SESSION_SECRET_KEY;
sign = encodeUtf8(sign);
return md5(sign);
}
var params = {};
params['name'] = NAME;
params['price'] = PRICE;
params['code'] = CODE;
params["application_key"] = APPKEY;
if (SESSION_KEY) {
params["session_key"] = SESSION_KEY;
} else {
params["access_token"] = ACCESS_TOKEN;
}
params['sig'] = calcSignature(params, SESSION_SECRET_KEY);
var query = 'https://m.ok.ru/api/show_payment?';
for (var key in params) {
if (params.hasOwnProperty(key)) {
query += key + "=" + encodeURIComponent(params[key]) + "&";
}
}
window.open(query);