Эндпоинт поддерживает режим, в котором запрос проходит полную проверку токена и валидацию тела, но реальная операция не выполняется — ничего
не записывается в БД, никакие WMID/кошельки/сообщения не затрагиваются.
Удобно использовать, чтобы заранее убедиться, что у токена есть нужные
права и что тело запроса корректно по формату.
Включается одним из способов (любой на выбор):
- HTTP-заголовок `X-Dry-Run: 1`
- query-параметр `?dryrun=1` в URL
Допустимые значения для включения: `1`, `true`, `yes` (регистр не важен).
Любое другое значение или отсутствие параметра — режим выключен.
Что проверяется в dry-run¶
- подпись JWT, срок действия и факт отсутствия отзыва;
- наличие в токене права, требуемого этим эндпоинтом;
- соответствие полей тела ограничениям (длины, форматы, обязательность,
совпадение `purse`/`wmid` с токеном — то же, что и в боевом режиме).
Что НЕ происходит в dry-run¶
- не вызываются методы Keeper'а / XML-интерфейсы WebMoney;
- не создаются и не отменяются счета, не выполняются переводы,
- не отправляются сообщения, не выбираются истории операций;
- не генерируются `wmtranid`, `wminvid`, `id` сообщений и т.п.
Пример успешного ответа в dry-run (JSON)¶
{
"reqn": 1730486400000,
"retval": 0,
"retdesc": "OK (dry-run)",
"dryrun": true
}
Поле dryrun: true — признак того, что запрос завершился без выполнения
реальной операции. Поля с данными конкретной операции (invoice, operation,
message, purses и т.п.) в этом режиме не возвращаются.
Ошибки в dry-run¶
Любые ошибки авторизации (401) и валидации тела (400) возвращаются как
в обычном режиме — dry-run их не подавляет. Это и есть смысл режима:
получить тот же результат, что в бою, но без побочных эффектов.
Если нужна только проверка токена (без привязки к телу конкретного
вызова), используйте отдельный эндпоинт POST /V1/Introspect.ashx —
он возвращает {"active": true/false, "scope": "...", "exp": ..., ...}
по схеме RFC 7662 OAuth 2.0 Token Introspection.