Python stripe не может удалить учетную запись подключения | объект ‘str’ не имеет атрибута ‘refresh_from’

#python #stripe-payments

#python #stripe-платежи

Вопрос:

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

Теперь я хочу удалить учетную запись stripe connect, баланс равен 0 ofc., хотя это не должно иметь значения для тестовых ключей. Согласно документу для 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:

Поддержка статических методов, подобных stripe.Account.delete описанным, была фактически добавлена в библиотеку только совсем недавно.

Если вы не используете последнюю версию библиотеки, вам нужно вместо этого сначала слегка интуитивно извлечь учетную запись, а затем удалить ее:

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

Комментарии:

1. Спасибо! Оказывается, я запускал более старую версию Stripe, и мне просто нужно было запустить это, чтобы обновить ее: pip install —upgrade stripe

Ответ №2:

Эта ошибка вызвана тем, что ваша версия python-stripe не поддерживает этот метод удаления с аргументом id. Я столкнулся с той же проблемой при удалении купона со старой версией stripe 2.6.0.

Комментарии:

1. Этот ответ уже был предложен и принят 3 года назад, с гораздо более подробной информацией.