Для обычных платежей я использую исправление, которое мне удалось сделать через остальные API. Я пытаюсь создать циклы выставления счетов сейчас, но что бы я ни делал, я получаю ошибки. Может кто-нибудь помочь мне настроить его на Flask?
В основном я хочу сделать следующее:
- Пользователь нажимает кнопку JOIN NOW , и он отображается страница (уже сделали это)
- На этой странице у меня обычно есть 2 кнопки PayPal
- Используя API подписок / планов, я понимаю, что это не так возможный. Как я мог это сделать. Я хочу, чтобы пользователь нажимал кнопки в JS, инициировал запрос к моему серверу, обрабатывал платеж, регистрировал пользователя в БД и затем обновлял sh страницу, чтобы они могли войти в панель управления. Это то, что я бы сделал, если бы это был разовый платеж. Как я могу сделать это с планами.
Это то, что я написал до сих пор:
@app.route('/payment')
def payment():
redirect(create_billing_agreement())
# HELPERS
def create_billing_agreement():
billing_agreement = BillingAgreement({
"name": 'Stocked Lab Subscription Agreement',
'description': "Agreement for Stocked Lab Subscription Plan",
'start_date': datetime.datetime.now().replace(microsecond=0).isoformat(),
"plan": {'id': create_billing_plan()}})
if billing_agreement.create():
for link in billing_agreement.links:
if link.method == "REDIRECT":
redirect_url = str(link.href)
return redirect_url
else:
print(billing_agreement.error)
def create_billing_plan():
plan = BillingPlan({
"name": 'Stocked Lab Subscription',
'description': 'The base subscription for Stocked Lab',
"type": 'INFINITE',
"payment_definitions": [{
"name": "Standard Plan",
"type": "REGULAR",
"frequency_interval": "1",
"frequency": "MONTH",
"cycles": '0',
"amount": {
"currency": "USD",
"value": "15"
}
}],
"merchant_preferences": {
"auto_bill_amount": "yes",
"cancel_url": "http://localhost:5000/cancel_subscription",
"initial_fail_amount_action": "continue",
"max_fail_attempts": "1",
"return_url": "http://localhost:5000/",
"currency": "USD",
"value": '0'
}
})
if plan.create():
print(f'Billing Plan [{plan.id}] created successfully')
if plan.activate():
plan = BillingPlan.find(plan.id)
print(f"Billing Plan [{plan.id}] state changed to {plan.state}")
return plan.id
else:
print(plan.error)
else:
print(plan.error)
Спасибо за любую помощь!