billing_agreement.cancel() 的问题。 ('cancel() 缺少 1 个必需的位置参数:'attributes')
Posted
技术标签:
【中文标题】billing_agreement.cancel() 的问题。 (\'cancel() 缺少 1 个必需的位置参数:\'attributes\')【英文标题】:Problem with billing_agreement.cancel(). ('cancel() missing 1 required positional argument: 'attributes')billing_agreement.cancel() 的问题。 ('cancel() 缺少 1 个必需的位置参数:'attributes') 【发布时间】:2020-08-10 04:32:39 【问题描述】: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】:经过一些挖掘和查看文档示例后,我发现了一个关于取消选项的示例,我需要分配给属性值的是 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'))
The documentation sample
【讨论】:
以上是关于billing_agreement.cancel() 的问题。 ('cancel() 缺少 1 个必需的位置参数:'attributes')的主要内容,如果未能解决你的问题,请参考以下文章