net/http из стандартной библиотеки. Что общего у всех SDK, см. в обзоре серверных SDK.
Установка
didit-sdk на RubyGems. Его исходный код и журнал изменений находятся в didit-protocol/sdk-ruby на GitHub.
Или добавьте gem "didit-sdk" в Gemfile и выполните bundle install. Подключите гем командой require "didit".
Настройка клиента
Didit::Client.new читает DIDIT_API_KEY из окружения. Передайте именованные аргументы, чтобы переопределить его или задать идентификаторы организации и приложения, которые нужны вызовам, привязанным к приложению (кейсы, сети, регуляторные отчёты). Поля запроса передаются как именованные аргументы с именами из API. Ответы представляют собой объекты, у каждого поля есть метод чтения, а также доступ через [:field] и to_h.
Создание сессии
Создайте сессию верификации для сценария и отправьте пользователя по её URL.Получение решения
Когда пользователь завершит процесс (или когда придёт webhook), получите решение. Результат каждой функции представляет собой список с одной записью на каждый узел сценария.Проверка webhook
Передайте необработанное тело запроса ровно в том виде, в каком оно получено, и заголовки запроса.verify вызывает исключение Didit::WebhookVerificationError для любой некорректной или просроченной доставки и возвращает типизированное событие в остальных случаях.
handle_webhook(request.raw_post, request.headers). Пока вы выполняете ротацию секрета, передайте оба: [new_secret, old_secret]. Список событий и схему подписи см. в разделе Webhooks.
Скрининг транзакции
Отправьте платёж, вывод средств или криптоперевод в мониторинг транзакций. В ответе будут указаны статус и оценка риска.Проверка токенов Authentication
Didit::Authentication проверяет токены доступа, которые подписывает ваш издатель Authentication, на вашем бэкенде, без вызова Didit для каждого запроса. Также он обменивает коды, обновляет токены, проверяет и отзывает сессии и запускает дополнительные проверки.
Проверка токенов выполняет проверки из раздела Проверка токена на вашем сервере по издателю и ключам подписи вашего приложения.