【问题标题】:Stripe API; {'error': 'invalid_grant', 'error_description': 'This authorization code has already been used条纹 API; {'error': 'invalid_grant', 'error_description': '此授权码已被使用
【发布时间】:2018-10-02 09:21:57
【问题描述】:

我正在使用 Stripe API,我正在尝试将连接帐户密钥保存在 db 中。但是我无法成功保存它们,并且发生了一件奇怪的事情。 我的代码在这里

resp = stripe_connect_service.get_raw_access_token(method='POST', data=data)
connect_account_info = json.loads(resp.text)
connect_public_key = connect_account_info['stripe_publishable_key']
connect_access_token = connect_account_info['access_token']
connect_user_id = connect_account_info['stripe_user_id']
connect_refresh_token = connect_account_info['refresh_token']

print(connect_public_key)
print(connect_access_token)
print(connect_user_id)
print(connect_refresh_token)

form = Form()
if form.validate_on_submit():
    data = Data(connect_public_key=connect_public_key, connect_access_token=connect_access_token, connect_user_id=connect_user_id, connect_refresh_token=connect_refresh_token)
    db.session.add(data)
    db.session.commit()

因此,在从 Stripe Connect 页面重定向的页面上获取令牌并完成提交表单后,我将保存数据。 print 实际上显示了连接帐户密钥,但是在提交表单后,错误说 connect_public_key = connect_account_info['stripe_publishable_key'] KeyError:'stripe_publishable_key' 即使打印确实有效。

当我运行调试器时,错误是这样的 {'error': 'invalid_grant', 'error_description': 'This authorization code has already been used.

我该如何解决这个错误?

【问题讨论】:

    标签: python flask stripe-payments


    【解决方案1】:

    当您的代码错误地重复使用您在 URL 中获得的授权代码 (ac_XXXX) 时,通常会发生此错误。

    这通常是由于在重定向后刷新了您所在的浏览器/页面造成的。您的代码将从 URL 获取代码并使用它在 /oauth/token 端点上交换它,但如果您这样做两次,出于安全原因,连接会被撤销。

    【讨论】:

      【解决方案2】:

      就我而言,是我的服务器在失败时重试,最终导致此错误响应。

      所以在我的情况下,问题是我的服务器函数在从代码中获取令牌后在不同的地方崩溃了。

      在函数崩溃后,由于服务器设置为重试,它再次使用相同的参数调用端点,并且在第二次尝试中代码确实已经使用,因此出现错误。

      也许它也可以帮助某人。

      【讨论】:

        猜你喜欢
        • 2021-07-28
        • 1970-01-01
        • 2014-01-06
        • 2016-06-21
        • 2016-06-22
        • 2012-11-25
        • 1970-01-01
        • 2022-10-23
        • 2020-03-31
        相关资源
        最近更新 更多