В общем, захотел реализовать автодонат в боте ВКонтакте. Написал примерный код, но что-то пошло не так. Код:
function donateLink(options) {
let payId = options.id;
let Field1 = options.field1;
let Field2 = options.field2;
let secretKey = 'jksfacjc';
let currency = 'RUB';
let merchId = 309922;
let sign = md5(`309922:${options.amount}:jksfacjc:RUB:tovar`);
const url = `https://www.free-kassa.ru/merchant/cash.php?oa=${options.amount}&i=&m=${merchId}&go_2pay=1&wt=v3&form_id=1686450&s={sign}`;
return url;
}
updates.hear(/^(?:тест донат)\s(.*)?/i, async message => {
let don_currency = donateLink
let currencyy = await vk.api.utils.getShortLink({ url: donateLink });
return message.send(`Вы покупаете ${message.$match[1]} печенек\n\n Ссылка для оплаты ${currencyy.short_url}`)
});
После ввода команды "тест донат {сумма}" -- бот игнорирует, а в консоли появляется ошибка:
Получено сообщение: тест донат 200 | 52 | пользователь: @id598958885 |
{ ExecuteError: Code №100 - One of the parameters specified was missing or invalid: url is undefined
at request.resolve.errors.map.error (/root/manager/node_modules/vk-io/lib/index.js:1240:62)
at Array.map ()
at API.callMethod (/root/manager/node_modules/vk-io/lib/index.js:1240:49)
at process._tickCallback (internal/process/next_tick.js:68:7) code: 100, name: 'ExecuteError', method: 'utils.getShortLink' }
Т.е. он не может найти url который надо сократить. Значит в функции где-то ошибка, но я не понимаю где. Функция в конце возвращает переменную "url"... Помогите пожалуйста
---
Пробовал ещё так:
function donateLink(options) {
let payId = options.id;
let Field1 = options.field1;
let Field2 = options.field2;
let secretKey = 'jksfacjc';
let currency = 'RUB';
let merchId = 309922;
let sign = md5(`309922:${options.amount}:jksfacjc:RUB:tovar`);
const url = `https://www.free-kassa.ru/merchant/cash.php?oa=${options.amount}&i=&m=${merchId}&go_2pay=1&wt=v3&form_id=1686450&s={sign}`;
return url;
}
updates.hear(/^(?:тест донат)\s(.*)?/i, async message => {
let don_currency = donateLink
let currencyy = await vk.api.utils.getShortLink({ url: don_currency});
return message.send(`Вы покупаете ${message.$match[1]} печенек\n\n Ссылка для оплаты ${currencyy.short_url}`)
});