【问题标题】:Can't start Plaid quickstart app in development mode无法在开发模式下启动 Plaid 快速入门应用
【发布时间】:2021-08-06 03:52:33
【问题描述】:

我刚刚开始使用格子呢。我已经在本地设置了快速启动应用程序,它在沙盒模式下运行良好。链接面板加载正常,我可以使用沙盒凭据登录机构。

我的.env 文件如下所示:

PLAID_CLIENT_ID=xxxxxxxx
PLAID_SECRET=xxxxxxxx
PLAID_ENV=sandbox
PLAID_PRODUCTS=transactions
PLAID_COUNTRY_CODES=US,CA
PLAID_REDIRECT_URI=http://localhost:3000

我现在想检查 Plaid 是否可以与一些特定的真实/实时机构合作,因此我正在尝试更新我的快速入门应用以在开发模式下工作。为此,我只需将 PLAID_SECRET 更新为我的开发密钥,并将 PLAID_ENV 更新为“开发”。

当我现在启动应用程序时,开始页面不再显示“启动链接”按钮,而是显示:

日志表明问题发生在 POST /api/create_link_token 调用上。如果我从该路由函数中删除错误处理,日志会显示问题:

Traceback (most recent call last):
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "server.py", line 196, in create_link_token
    response = client.link_token_create(request)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 769, in __call__
    return self.callable(self, *args, **kwargs)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api/plaid_api.py", line 5566, in __link_token_create
    return self.call_with_http_info(**kwargs)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 831, in call_with_http_info
    return self.api_client.call_api(
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 406, in call_api
    return self.__call_api(resource_path, method,
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 200, in __call_api
    raise e
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 193, in __call_api
    response_data = self.request(
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 452, in request
    return self.rest_client.POST(url,
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/rest.py", line 264, in POST
    return self.request("POST", url,
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/rest.py", line 223, in request
    raise ApiException(http_resp=r)
plaid.exceptions.ApiException: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'Server': 'nginx', 'Date': 'Sun, 16 May 2021 18:22:05 GMT', 'Content-Type': 'application/json; charset=utf-8', 'Content-Length': '301', 'Connection': 'keep-alive'})
HTTP response body: {
  "display_message": null,
  "documentation_url": "https://plaid.com/docs/?ref=error#invalid-input-errors",
  "error_code": "INVALID_API_KEYS",
  "error_message": "invalid client_id or secret provided",
  "error_type": "INVALID_INPUT",
  "request_id": "EbCTgZkFdeYQQ8r",
  "suggested_action": null
}

所以这表明我使用了错误的客户端 ID 或密码,但我不明白。客户端 ID 应该没问题(它在沙盒模式下工作),秘密绝对是我的开发模式的秘密(我什至尝试过生成一个新的但没有区别)。我错过了什么吗?

最后,如果我使用 Postman POST 到 https://development.plaid.com/link/token/create 创建一个链接令牌,使用相同的客户端 ID 和“开发”秘密,它似乎工作正常(即我得到一个 200 响应和全新的链接令牌) .

非常感谢任何帮助!

【问题讨论】:

    标签: python plaid


    【解决方案1】:

    糟糕,这样就可以了:

    https://github.com/plaid/quickstart/blob/master/python/server.py#L84

    看起来 python 快速入门是硬编码的,以忽略 .env 文件中设置的环境变量。我们会解决这个问题的。同时,更改该行应该可以解决您的问题。

    【讨论】:

      【解决方案2】:

      这是因为 Python 被硬编码为沙盒。此问题正在修复中,同时在 server.py 的第 84 行,您可以将其更改为:

      “host=plaid.Environment.Development”

      【讨论】:

        猜你喜欢
        • 2021-05-16
        • 1970-01-01
        • 2020-03-06
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        • 2016-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多