Yodlee处理mfaInfo.fieldInfo为空的MFA



根据

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调用,因为理想情况下,行为不会与流程图中所示的行为发生变化。

最新更新