根据
https://developer.yodlee.com/Aggregation_API/Aggregation_Services_Guide/API_Flow/Refresh_Account
一旦我收到isMessageAvailable=true的响应,并且errorCode为空,我应该调用getMFAResponse(实际上我使用的是getMFARresponseForSite)
此响应不应包含null mfaRefreshInfo.fieldInfo。不幸的是,我能够测试fieldInfo的所有情况都为null。
你能帮我理解一下我做错了什么吗。SiteAccountId为10038630。
如果您正在使用getMFAResponseForSite,则使用此刷新流
现在,getMFAResponseForSite的响应取决于yodlee在尝试登录后多久会遇到MFA。
你可以得到3种类型的回复-
{ "isMessageAvailable": false, "timeOutTime": 0, "itemId": 0,
"memSiteAccId": 10000502, "retry": true }
在第一次调用MFA API时,如果MFA数据延迟,您可能会收到此消息,因此您需要返回并再次调用此API(如流程到循环中所建议的)。在这种情况下,如果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可以导航到帐户摘要页面。如果错误代码不是零,请参阅错误代码页面
现在,在您的情况下,siteAccountID失败,错误代码为429,因此您应该在getMFAResponseForSite API中获取该信息。
您能否确保遵循正确的刷新流程并进行正确的API调用,因为理想情况下,行为不会与流程图中所示的行为发生变化。