#
from django.conf import settings
from django.urls import reverse
+from paypal.rest import agreement_approval_url
class PaymentMethod(object):
class PayURe(PaymentMethod):
- slug='payu-re'
- name = 'PayU (płatność odnawialna)'
+ slug = 'payu-re'
+ name = 'PayU recurring'
template_name = 'club/payment/payu-re.html'
is_recurring = True
class PayPal(PaymentMethod):
- slug='paypal'
- name = 'PayPal (płatność odnawialna)'
+ slug = 'paypal'
+ name = 'PayPal'
template_name = 'club/payment/paypal.html'
is_recurring = True
- is_onetime = True
+ is_onetime = False
def initiate(self, request, schedule):
- return reverse('club_dummy_payment', args=[schedule.key])
+ app = request.GET.get('app')
+ return agreement_approval_url(schedule.amount, schedule.key, app=app)
+ def pay(self, request, schedule):
+ from datetime import date, timedelta, datetime
+ from pytz import utc
+ tomorrow = datetime(*(date.today() + timedelta(2)).timetuple()[:3], tzinfo=utc)
+ any_active = False
+ for ba in schedule.billingagreement_set.all():
+ active = ba.check_agreement()
+ ba.active = active
+ ba.save()
+ if active:
+ any_active = True
+ if any_active:
+ schedule.expires_at = tomorrow
+ schedule.save()
+
+
+methods = []
pos = getattr(settings, 'CLUB_PAYU_RECURRING_POS', None)
if pos:
recurring_payment_method = PayURe(pos)
+ methods.append(recurring_payment_method)
else:
recurring_payment_method = None
pos = getattr(settings, 'CLUB_PAYU_POS', None)
if pos:
single_payment_method = PayU(pos)
+ methods.append(single_payment_method)
else:
single_payment_method = None
+
+
+
+methods.append(
+ PayPal()
+)