根据
https://developer.yodlee.com/Aggregation_API/Aggregation_Services_Guide/API_Flow/Refresh_Account
一旦我收到了isMessageAvailable = true的响应并且errorCode为空,我应该调用getMFAResponse(实际上我使用的是getMFAResponseForSite)
此响应应包含非null mfaRefreshInfo.fieldInfo。不幸的是,我能够测试fieldInfo的所有情况都是null。
你可以帮我理解我做错了什么。 SiteAccountId是10038630。答案 0 :(得分:0)
如果您使用的是getMFAResponseForSite,请使用此refresh flow
现在getMFAResponseForSite的响应取决于yodlee在登录尝试后遇到MFA的时间。
您可以获得3种类型的回复 -
{ "isMessageAvailable": false, "timeOutTime": 0, "itemId": 0,
"memSiteAccId": 10000502, "retry": true }
在您第一次调用MFA API时,如果延迟提供MFA数据,您可能会得到此信息,因此您需要返回并再次调用此API(如流程循环中所示)。在这种情况下if if messageAvailable if false和timeoutTime> 0然后它表示Yodlee已经超时请求,您可以中止刷新并尝试重新启动它。
{
"isMessageAvailable": true,
"fieldInfo": {
"responseFieldType": "text",
"minimumLength": -1,
"maximumLength": 6,
"displayString": "Security Key"
},
"timeOutTime": 97640,
"itemId": 0,
"memSiteAccId": 10000052,
"retry": false
}
这是您获得MFA回复的情况。在这里,您可以看到isMessageAvailable为true,并且您填充了字段信息。这个响应可以在第一次调用getMFAResponseForSite时或在1或2次循环之后发生。
{
"isMessageAvailable": true,
"fieldInfo": {
"questionAndAnswerValues": [],
"numOfMandatoryQuestions": -1
},
"timeOutTime": 98480,
"itemId": 0,
"errorCode": 0,
"memSiteAccId": 10039332,
"retry": false
}
在这种情况下,您可以看到存在错误代码,如果它为0(零)意味着在没有MFA的情况下登录成功,并且Yodlee能够导航到帐户摘要页面。如果错误代码不为零,请参阅error code页面
现在,在您的情况下,siteAccountID失败,错误代码为429,因此您应该在getMFAResponseForSite API中获取该信息。
您是否可以确保遵循正确的刷新流程并进行正确的API调用,理想情况下,行为不会改变流程图中的内容。