Проблема с billing_agreement.cancel (). ('cancel () отсутствует 1 обязательный позиционный аргумент:' атрибуты ') - PullRequest
1 голос
/ 26 апреля 2020

SDK / версия библиотеки: 1.13.1

Среда: песочница

Значения PayPal-Debug-ID: нет

Язык, языковая версия и ОС: Python, Ubuntu

Описание проблемы: я получаю следующую ошибку при попытке отменить соглашение о выставлении счета.

Ошибка:

TypeError: cancel() missing 1 required positional argument: 'attributes'

Мой код:

billing_agreement = BillingAgreement.find(billing_id)
    if billing_agreement.cancel():
        print(billing_agreement)
    else:
        flash('We are having some difficulties canceling your subscription, please try again later.', 'fails')
        return redirect(url_for('settings.settingspage'))

Я получаю сообщение об ошибке, потому что мне нужно что-то в значении атрибута, но я не знаю, что мне следует назначить переменной.

Проблема GitHub: https://github.com/paypal/PayPal-Python-SDK/issues/297

1 Ответ

0 голосов
/ 27 апреля 2020

После некоторых копаний и просмотра примеров документации я нашел пример с опцией отмены, и мне нужно было присвоить значение атрибута: cancel_note.

Код:

cancel_note = {"note": "Canceling the agreement"}
user = Users.query.filter_by(id=ID).first()
billing_id = Subscriptions.query.filter_by(email=user.email).filter_by(active=1).first().order_id
billing_agreement = BillingAgreement.find(billing_id)
if billing_agreement.cancel(cancel_note):
    flash('Subscription canceled with success.', 'success')
    return redirect(url_for('settings.settingspage'))
else:
    flash('We are having some difficulties canceling your subscription, please try again later.', 'fails')
    return redirect(url_for('settings.settingspage'))

Образец документации

...