Я делаю проверку подлинности MFA в Yendlee, и я понял, что только способ узнать, что поток MFA закончен, это сделать вызов getMFAResponse и получить следующий ответ.Yodlee getMFARОтвет ответа времени?
{
"isMessageAvailable":true,
"fieldInfo":{
"questionAndAnswerValues":[],
"numOfMandatoryQuestions":-1
},
"timeOutTime":99300,
"itemId":12689201,
"errorCode":0,
"retry":false
}
И вот что такое errorCode. Пустые значения поляInfo - это просто лишний шум.
Но проблема в том, что при первом вызове, который получает реальные необходимые поля MFA в нашей тестовой среде с использованием учетной записи DAG, составляет 0,4 секунды. Но тогда дополнительный getMFAResponse должен был знать, что поток MFA завершен, занимает 43 секунды.
Да 43 секунды !!! В то время я мог ходить в банк и в очереди, чтобы получить личную услугу. Является ли такое время ответа нормальным, что вы можете ожидать в производственной среде, или это проблема с тестовой средой? С таким временем отклика довольно сложно сделать интерфейс, который будет как-то приемлемым.
Конечно, если бы знали заранее, что поток MFA находится всего на 1 уровень, то можно просто пропустить дополнительное обновление. Propably с таким временем отклика должны сделать некоторые грязные трюки и предположения ...
Кажется, что DAG конфигурации XML имеет следующие
<flowControlInfo>
<delayBeforeChallenge>-1</delayBeforeChallenge>
<delayBeforeLoginComplete>20</delayBeforeLoginComplete>
<delayAfterLoginComplete></delayAfterLoginComplete>
<expireToken>false</expireToken>
</flowControlInfo>
так от того, что будет выглядеть через 20 секунд, как ожидается задержка (delayBeforeLoginComplete) но это все равно на 23 секунды меньше того, что происходит, и ожидал бы, что getMFAResponse вернется с isMessageAvailable = false за меньшее короткое время.
Из потока обновления, который вы связали, говорится, что вы должны позвонить getMFAResponse не менее двух раз, это именно то, что я делаю. 1) getMFAResponse => обязательные поля, код ошибки 2) putMFAResponse => {"primitiveObj": true} 3) getMFAResponse => код ошибки, а вызов занимает 43 секунды –