google analytics

У нас есть 2 схемы безопасности.
Простая не гарантирует аутентичность данных, но содержит информацию для идентификации магазина.
Сильная схема гарантирует аутентичность данных и проводит проверки аутентичности обеих сторон общения.

Стандартная схема

В личном кабинете для магазина генерируется одну пара кодовых фраз: для системы PayQR и для магазина.

При отправке уведомлений о событиях в Header запроса к серверу магазина, отправляемого сервером PayQR, добавляется PQRSecretKey, в которое прописывается кодовая фраза PayQR, указанная в личном кабинете магазина. В ответах магазина на эти запросы в Header должно быть добавлено поле PQRSecretKey с кодовой фразой магазина, указанной в личном кабинете магазина.

При отправке запроса магазином на сервер PayQR нужно Header запроса PQRSecretKey прописать значение ключа магазина, а в ответе проверить, что в этом заголовке указана корректная кодовая фраза от PayQR.

Для усиления защиты при создании заказа вы можете в параметры кнопки добавить некоторый хэш в поле data-userdata. Затем, при получении уведомления о необходимости создании заказа invoice.order.creating вы можете проверить, совпадает ли полученный в поле userData хэш с переданными данными о заказе.

Усиленная схема

Для повышения безопасности обмена данными можно использовать подписи в заголовках, посылаемых и принимаемых webhook-уведомлений. В качестве подписи применяются дайджесты (хэш + ключ). Подпись принимаемого уведомления проверяется на соответсвтие заголовка PQRSign и совокупности RSA2048 хэша. Тело отправляемого запроса заверяется подписью, созданной по хэшу SHA 256.

PayQR генерирует и подписывает хэш отправленных запросов. Клиент генерирует закрытый ключ сам (например, PuttyGen) и сохраняет в личном кабинете свой открытый ключ.

При необходимости в индивидуальном порядке возможно использовать подпись сеансов взаимодействия между сервером PayQR и продавцом на основе Крипто-Про вместо RSA.