Полоса Python не может удалить учетную запись подключения | У объекта 'str' нет атрибута 'refresh_from' - PullRequest
2 голосов
/ 04 апреля 2019

Я использую Stripe Connect и пользовательский интерфейс для создания / управления пользователями Stripe.

Теперь я хочу удалить учетную запись Stripe Connect, баланс равен 0 ofc., Хотя это не должно иметь значения для тестовых ключей. В соответствии с document для Stripe Connect очень просто удалить учетную запись:

С помощью Connect вы можете удалять собственные учетные записи, которыми вы управляете. Пользовательские учетные записи, созданные с помощью ключей тестового режима, могут быть удалены в любое время. Пользовательские учетные записи, созданные с использованием ключей в режиме реального времени, могут быть удалены только после того, как все балансы равны нулю.

Это мой код:

user = User.query.filter_by(id=data_received["user_id"]).first()

stripe_acc_id = user.stripe_connect_acc_id

db_session.delete(user)

if stripe_acc_id != None:
    print ("User has stripe connect account", stripe_acc_id)
    try:
        stripe.Account.delete(stripe_acc_id)
    except Exception as e:
        return json.dumps({'status': 'failed', 'reason': str(e)})

db_session.commit()

Но это не работает, я получаю эту ошибку:

{"status": "failed", "reason": "'str' object has no attribute 'refresh_from'"}

1 Ответ

5 голосов
/ 04 апреля 2019

Поддержка статических методов, таких как stripe.Account.delete, как было задокументировано, фактически была добавлена ​​в библиотеку совсем недавно! [0] Если вы не используете последнюю версию библиотеки, вам нужно сначала немного нелогичным получить учетную запись, а затем удалить ее:

account = stripe.Account.retrieve('acct_1DyHD2HPqAmBZVG2') 
account.delete()

[0] - вчера, фактически: https://github.com/stripe/stripe-python/blob/master/CHANGELOG.md#2240---2019-04-03

...