ежемесячные тарифные планы PayPal для первого дня месяца и ежемесячный ежемесячный платеж - django python

Я использую Django paypalrestsdk для PayPal 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"
})

Мне непонятно, взимается ли он в первый день месяца или в последний день месяца? Должен ли я настроить, чтобы он сразу зарядился? Мое намерение - это зарядка производится в первый день месяца.

Я вижу это в песочнице покупателя: Предварительно утвержденная оплата USD100. Что это значит, он уже заплатил 100 долларов США или предварительно одобрен и взимается в последний день месяца?

Исходя из этого, кажется, что он сразу заряжен. то есть он должен показать USD200 право? (настройка + ежемесячно, но показывается только 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, у меня теперь есть настройка USD100, а повторяющаяся дата начала устанавливается 1 месяц спустя за USD111

    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

Ответы

Ответ 1

Paypal автоматически попытается сохранить дату выставления счета одинаковой для каждого месяца (где это применимо, как указано в связанном ресурсе).

Вы можете указать дату начала биллингового соглашения, как указано в этом примере, указав поле start_date.
Здесь я использую модуль стрелки, чтобы удобно вычислить первый день следующего месяца:

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 поля setup_fee !


EDIT после обновления вопроса:

В поле merchant_preferences вашего плана вы устанавливаете auto_bill_amount в yes.
Взглянув на документацию на merchant_preferences мы видим, что:

auto_bill_amount перечисление

Указывает, автоматически ли PayPal оплачивает непогашенный остаток в следующем платежном цикле. Непогашенный остаток представляет собой общую сумму любых ранее неплатежеспособных платежей. Значение:

NO. PayPal автоматически не выставляет счет клиенту непогашенный баланс.
YES. PayPal автоматически оплачивает клиенту непогашенный остаток.

Возможные значения: YES, NO.

По умолчанию: NO.