代码之家  ›  专栏  ›  技术社区  ›  user9576657

条带API;{'error':'invalid\u grant','error\u description':'此授权码已被使用

  •  2
  • user9576657  · 技术社区  · 6 年前

    我正在使用条带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\u public\u key=connect\u account\u info['stripe\u publishable\u key'] KeyError:“stripe\u publishable\u密钥” 即使打印确实有效。

    当我运行调试器时,错误如下所示 {'error': 'invalid_grant', 'error_description': 'This authorization code has already been used.

    如何修复此错误?

    2 回复  |  直到 6 年前
        1
  •  1
  •   koopajah MKumar    6 年前

    当代码错误地重新使用URL中的授权代码(ac\U XXXX)时,通常会发生此错误。

    这通常是由于重定向后刷新您所在的浏览器/页面造成的。您的代码将从URL获取代码,并使用它在 /oauth/token 端点,但如果执行两次,则会由于安全原因导致连接被吊销。

        2
  •  0
  •   vir us    3 年前

    在我的例子中,是我的服务器在失败时重试,最终导致了此错误响应。

    因此,在我的例子中,问题是在从代码中获取令牌后,服务器的功能在另一个地方崩溃。

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

    也许它也能帮助别人。