Динамични QR кодове — тестова среда
Създайте еднократен QR код за документ, сканирайте го с телефона, изпратете оценка — и вижте долу, на живо, дали системата я е приела или отказала и защо. Всички служители, офиси и документи тук са измислени.
- 1 · Банката съставя линкОфис, служител, номер на документа и дата.
- 2 · Подписва го с таен ключВ линка отива само подписът (HMAC). Самият ключ не е част от линка — имат го само банката и системата, която проверява.
- 3 · Системата проверяваПресмята подписа със своето копие на ключа. Съвпада → формата за оценка. Не съвпада → отказ с причина.
- 4 · Един код — една оценкаПървата изпратена оценка използва кода. Отварянето и презареждането не го използват.
Създайте код
Изберете служител или въведете стойности сами.
Или създайте умишлено грешен код, за да видите отказа:
Документ и QR код
- Документ №
- Офис
- Служител
- Дата
Оценете обслужването — сканирайте кода с телефона.
За разработчици: как банката създава код сама
Линкът се съставя и подписва изцяло в банката — без обаждане до нас. Ето точните правила, по които тази среда проверява.
Вид на линка (всичко след адреса — с главни букви):
HTTPS://RATESTAR-QR.PAGES.DEV/D/{ОФИС}/{СЛУЖИТЕЛ}/{ДОКУМЕНТ}/{ГГММДД}/{КЛЮЧ}/{ПОДПИС}
Подписан текст (ASCII):
FIBANK-DOC-V1/{ОФИС}/{СЛУЖИТЕЛ}/{ДОКУМЕНТ}/{ГГММДД}/{КЛЮЧ}
Подпис: HMAC-SHA-256 с ключа върху подписания текст → първите 16 байта → base32 (RFC 4648, главни букви, без „=“) → 26 знака.
Тестов ключ „S“: „S“ е само името на ключа. Самият ключ се показва след въвеждане на кода за достъп, който сте получили отделно. В реална работа ключът е таен и се пази само в банката и в Ratestar.
Пример на Python:
import hmac, hashlib, base64
key = bytes.fromhex("ТЕСТОВИЯТ_КЛЮЧ_В_HEX")
text = "FIBANK-DOC-V1/001/DEMO1/DOC12345678/260924/S"
tag = base64.b32encode(hmac.new(key, text.encode(), hashlib.sha256).digest()[:16]).decode().rstrip("=")
print("HTTPS://RATESTAR-QR.PAGES.DEV/D/001/DEMO1/DOC12345678/260924/S/" + tag)
Последният създаден код:
Правила в тази среда
- Офис: 3 знака; служител: 4–8; документ: 6–20 (A–Z, 0–9).
- Дата по UTC: до 30 дни назад и до 1 ден напред.
- Един код = офис + служител + документ. Нов подпис или повторен печат на същия документ не дава втора оценка.
- Познати служители:
001/DEMO1— Мария Петрова, Офис Витоша002/DEMO2— Георги Иванов, Офис Лозенец003/DEMO3— Елена Димитрова, Офис Младост
Тестова среда за динамични QR кодове. Няма връзка с реалните системи на Ratestar и на банката. Не се записват IP адреси или данни за устройства. Използвайте само измислени номера на документи.