如何解决如何在 Plaid Sandbox 快速入门应用 (node.js) 中调用链接更新模式?
我已启动并运行 Plaid Quickstart(节点)。
我使用沙盒凭据成功登录了其中一个沙盒机构(First Platypus Bank)并获得了它生成的 access_token。
根据链接更新模式文档 (https://plaid.com/docs/link/update-mode/),您应该能够“强制给定项目进入 ITEM_LOGIN_REQUIRED 状态”。
从我上面链接的文档中...
可以使用 /sandbox/item/reset_login 端点在 Sandbox 中测试更新模式,这将强制给定 Item 进入 ITEM_LOGIN_REQUIRED 状态。
我使用 Postman(在 Sandbox Public 环境中)向此端点 https://sandbox.plaid.com/sandbox/item/reset_login 发送 API 调用,以强制进入 ITEM_LOGIN_REQUIRED 状态。
这是与 API 调用一起发送的正文...
{
"client_id": "{{client_id}}","secret": "{{secret_key}}","client_name": "Insert Client name here","country_codes": ["US"],"language": "en","user": {
"client_user_id": "unique_user_id"
},"access_token": "{{access_token}}"
}
这是我收到的回复...
{
"expiration": "2021-02-13T04:13:12Z","link_token": "link-sandbox-7d82e9b8-b8a7-4977-9c20-aadbc82ec050","request_id": "eE56J8f5XJKpS6L"
}
...这正是我所期望的。
然后我返回到 Quickstart 应用程序并再次登录“First Platypus Bank”,希望收到 MFA 挑战的提示,但它只是创建了一个新的 access_token。
那么,如何让 Plaid Quickstart 应用程序进入链接更新模式?
更新:
根据 Alex 的问题,这是一张显示我拨打的邮递员电话的图片。他是对的,这是一个 /link/token/create 调用。令人困惑的是它被标记为创建链接令牌 - 更新模式。
更新 2:
这是 /sandbox/item/reset_login 调用和响应。响应中不包含 link_token。
更新 3:
在 Alex 的帮助和 Plaid 支持的一些帮助之间,我完成了这项工作。
我把链接令牌放错了地方。
对于将来看到此内容的任何人,以下是您需要遵循的步骤,以使节点快速入门应用程序进入链接更新模式。
您还可以观看this video来查看该过程的演示;但是,请注意,在视频中,我将 link_token 放在了错误的位置。下面的说明显示了如何将其放置在正确的位置。
- 获取您想要进入链接更新模式的机构的 access_token(假设您已安装、启动并运行快速入门应用程序。请参阅... https://plaid.com/docs/quickstart/)
- 启动快速启动后端 (/quickstart/node/start.sh)
- 启动快速入门前端 (cd /quickstart/frontend; npm start;)
- 在浏览器中的端口 3000 上启动前端后,单击“启动链接”按钮,然后单击“继续”。
- 搜索机构(例如,First Platypus Bank、First Gingham Credit Union...如果处于沙盒模式。或者您自己的机构,如果处于开发模式)
- 输入您的凭据(user_good/pass_good ...如果处于沙盒模式)
- 复制access_token
- 关闭 Plaid 浏览器标签
- 在 Postman 中(要进行设置,请参阅... https://github.com/plaid/plaid-postman),输入您刚刚复制到 access_token 变量中的访问令牌(请参阅上面的第一个屏幕截图。单击右上角附近的图标看起来像眼睛的一侧然后向下滚动到 access_token 并输入它。)
- 运行 /sandbox/item/reset_login 端点。它在 Postman 中标记为“Simulate ITEM_LOGIN_REQUIRED [Sandbox only]”。请求正文应类似于上面的第二个屏幕截图。发送请求后,响应正文应显示
"reset_login": true
。现在格子项目(即机构)处于 ITEM_LOGIN_REQUIRED 模式。 - 运行 /link/token/create 端点。它在 Postman 中标记为“创建链接令牌 - 更新模式”。请求正文应类似于上面的第一个屏幕截图。发送请求后,响应正文应为您提供一个 link_token。复制它以用于下一步。
- 运行 /sandbox/item/reset_login 端点。它在 Postman 中标记为“Simulate ITEM_LOGIN_REQUIRED [Sandbox only]”。请求正文应类似于上面的第二个屏幕截图。发送请求后,响应正文应显示
- 将 link_token 放入 Plaid 快速入门应用中。
- 在 /quickstart/frontend/src/App.tsx 中的 line 23 上,将
data.link_token
替换为您的 link_token。所以这个dispatch({ type: "SET_STATE",state: { linkToken: data.link_token } });
变成了这个dispatch({ type: "SET_STATE",state: { linkToken: "link-sandbox-704ef648-2acd-44a2-867b-ea1258e9205c" } });
(当然,使用你自己的 link_token,不要忘记你的 link_token 周围的引号。)
- 在 /quickstart/frontend/src/App.tsx 中的 line 23 上,将
- 重启后端和前端。当您启动 Link 时,它现在应该处于 Link Update Mode。
解决方法
您描述的过程听起来是正确的,但您帖子中的 API 请求和响应正文是 /link/token/create 的请求和响应,而不是 /sandbox/item/reset_login。你能确认你没有不小心调用 /link/token/create 而不是调用 /sandbox/item/reset_login 吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。