const nachisleno = responseData.find(i => i.НАЧИСЛЕНО).НАЧИСЛЕНО;
const uderzhano = responseData.find(i => i.УДЕРЖАНО).УДЕРЖАНО;
const upperRows = function*(){
for (let i = 0; i < Math.max(nachisleno.length, uderzhano.length); i += 1) {
yield [ nachisleno[i] ?? {}, uderzhano[i] ?? {}, ];
}
};
responseData.map()
заменить на${Array.from(upperRows()).map(item => {
const видНачисления = item[0]["ВидНачисления"] || "";
const периодНачисления = item[0]["ПериодНачисления"] || "";
const отработанныеДни = item[0]["ОтработанныеДни"] || "";
const отработанныеЧасы = item[0]["ОтработанныеЧасы"] || "";
const оплаченныеДни = item[0]["ОплаченныеДни"] || "";
const оплаченныеЧасы = item[0]["ОплаченныеЧасы"] || "";
const суммаНачисления = item[0]["СуммаНачисления"] || "";
const видУдержания = item[1]["ВидУдержания"] || "";
const периодУдержания = item[1]["ПериодУдержания"] || "";
const суммаУдержания = item[1]["СуммаУдержания"] || "";
return `
<tr>
<td class="tg-jxgv">${видНачисления}</td>
<td class="tg-l38m" colspan="2">${периодНачисления}</td>
<td class="tg-l38m">${отработанныеДни}</td>
<td class="tg-l38m">${отработанныеЧасы}</td>
<td class="tg-l38m">${оплаченныеДни}</td>
<td class="tg-l38m">${оплаченныеЧасы}</td>
<td class="tg-l38m">${суммаНачисления}</td>
<td class="tg-jxgv" colspan="3">${видУдержания}</td>
<td class="tg-jxgv" colspan="2">${периодУдержания}</td>
<td class="tg-l38m" colspan="2">${суммаУдержания}</td>
</tr>
`;
}).join('')}
src
в new Image()
и у него ловить load
или error
<img>
или background-image:
), то этот самый svg должен быть self-contained, т.е. не должен зависеть от внешних источниковhash_hmac('sha256', BOT_TOKEN, 'WebAppData', true);
// $input — то, что приходит от телеги строкой
parse_str($input, $initData);
$data = [];
foreach ($initData as $name => $item) {
if ($name === 'hash') continue;
$data[] = $name . '=' . $item;
}
sort($data);
$hashKey = hash_hmac('sha256', BOT_TOKEN, 'WebAppData', true);
$hash = hash_hmac('sha256', implode("\n", $data), $hashKey);
echo $hash !== $initData['hash'] ? 'BAD' : 'OK';
<head>
или в самое начало <body>
, чтобы он выполнился при парсинге этого места браузером; и не ссылкой, а напрямую