Yodlee使用null mfaInfo.fieldInfo处理MFA

时间:2014-11-05 13:59:17

标签: yodlee

根据

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。

1 个答案:

答案 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调用,理想情况下,行为不会改变流程图中的内容。