gpt4 book ai didi

python - 每月第一天的 Paypal 每月订阅计划设置并每月定期付款 - django python

转载 作者:IT老高 更新时间:2023-10-28 20:55:48 25 4
gpt4 key购买 nike

我正在为 PayPal 使用 Django paypalrestsdk https://github.com/paypal/PayPal-Python-SDK

我想设置一个每月订阅计划。每个月初,将向买家收取 100 美元的费用。

这是我制作的计费计划代码:

billing_plan = paypalrestsdk.BillingPlan({
"name": "Monthly Billing Plan",
"description": "Monthly Plan",
"merchant_preferences": {
"auto_bill_amount": "yes",
"cancel_url": "http://localhost:8000/payment_billing_agreement_cancel",
"initial_fail_amount_action": "continue",
"max_fail_attempts": "0",
"return_url": "http://localhost:8000/payment_billing_agreement_execute",
"setup_fee": {
"currency": "USD",
"value": "100"
}
},
"payment_definitions": [
{
"amount": {
"currency": "USD",
"value": "100"
},
"cycles": "0",
"frequency": "MONTH",
"frequency_interval": "1",
"name": "Monthly Payment",
"type": "REGULAR"
}
],
"type": "INFINITE"
})

不清楚是在月初还是最后一天收费?我应该进行设置以便立即收费吗?我的意图是在每月的第一天完成收费。

我在买方的沙盒中看到了这一点:预批付款 100 美元这是什么意思,他是已经收取了 100 美元,还是在当月最后一天预先批准并收取了费用?

基于此,它似乎立即收费。这意味着它应该显示 200 美元对吗? (设置 + 每月,但仅显示 100 美元) https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/subscription_billing_cycles/

到目前为止,我已经使用过这个流程:

create billing plan
activate billing plan
create billing agreement
execute billing agreement

(这是正确的吗?它显示的是预先批准的,但这是否真的收费,如果不是,应该采取什么其他步骤来正确收费)

澄清一下,主要问题是您如何使用 PayPal 设置每月结算(以及设置收费周期,无论是月初还是月底)? (在这个例子中,它使用 django python)

更新:

根据@john-moutafis 的建议,我现在设置了 100 美元,并且定期开始日期设置为 1 个月后为 111 美元

    billing_agreement = paypalrestsdk.BillingAgreement({
"name": "Monthly Billing Agreement",
"description": "Monthly Payment Agreement",
"start_date": arrow.utcnow().shift(months=+1).datetime.strftime('%Y-%m-%dT%H:%M:%SZ'),
"plan": {
"id": billing_plan.id
},
"payer": {
"payment_method": "paypal"
}
})

这里是paypal截图,为什么没有金额信息,为什么预先批准没有重复信息? https://imgur.com/a/Sp7JdVC

最佳答案

Paypal 将自动尝试使每个月的结算日期保持不变(如果适用,as stated in the linked resource)。

您可以按照 this example 中的规定说明结算协议(protocol)的开始日期。 ,通过指定 start_date 字段。
这里我用arrow模块,方便计算下个月的第一天:

import arrow

billing_plan = paypalrestsdk.BillingPlan({
"name": "Monthly Billing Plan",
"description": "Monthly Plan",
"start_date": arrow.utcnow().shift(months=+1).replace(day=1).isoformat(),
"merchant_preferences": {
...
"setup_fee": {
"currency": "USD",
"value": "100"
}
}
...
})

初始订阅费用应由setup_fee字段处理!


问题更新后编辑:

在您计划的 merchant_preferences 字段中,您将 auto_bill_amount 设置为 yes
通过查看 documentation on merchant_preferences我们可以看到:

auto_bill_amount enum

Indicates whether PayPal automatically bills the outstanding balance in the next billing cycle. The outstanding balance is the total amount of any previously failed scheduled payments. Value is:

NO. PayPal does not automatically bill the customer the outstanding >balance.
YES. PayPal automatically bills the customer the outstanding balance.

Possible values: YES, NO.

Default: NO.

关于python - 每月第一天的 Paypal 每月订阅计划设置并每月定期付款 - django python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49957228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com