Skip to content

Commit

Permalink
Merge pull request #808 from xzzy/master
Browse files Browse the repository at this point in the history
Payment logging
  • Loading branch information
xzzy committed Aug 10, 2020
2 parents 97b0a3a + e68f0d5 commit 15a4d29
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions ledger/checkout/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,7 @@ def doInvoice(self,order_number,total,**kwargs):
raise ValueError('{0} is not a supported BPAY method.'.format(method))

def handle_last_check(self,url):
logger.info('checkout --> handle_last_check:'+str(url))
try:
res = requests.get(url,cookies=self.request.COOKIES, verify=False)
res.raise_for_status()
Expand Down Expand Up @@ -269,10 +270,13 @@ def handle_payment(self, order_number, total, **kwargs):
method = self.checkout_session.payment_method()
# Last point to use the check url to see if the payment should be permitted
if self.checkout_session.get_last_check():
logger.info('Order #%s: handling payment --> self.checkout_session.get_last_check', order_number)
self.handle_last_check(self.checkout_session.get_last_check())
if self.checkout_session.free_basket():
logger.info('Order #%s: handling payment --> self.checkout_session.free_basket', order_number)
self.doInvoice(order_number,total)
else:
logger.info('Order #%s: handling payment --> else', order_number)
if method == 'card':
try:
#Generate Invoice
Expand All @@ -287,6 +291,7 @@ def handle_payment(self, order_number, total, **kwargs):
card_method = self.checkout_session.card_method()
# Check if the user is paying using a stored card
if self.checkout_session.checkout_token():
logger.info('Order #%s: self.checkout_session.checkout_token: '+str(method), order_number)
try:
token = BpointToken.objects.get(id=self.checkout_session.checkout_token())
except BpointToken.DoesNotExist:
Expand All @@ -297,8 +302,10 @@ def handle_payment(self, order_number, total, **kwargs):
else:
bpoint_facade.pay_with_storedtoken(card_method,'internet','single',token.id,order_number,invoice.reference, total.incl_tax)
else:
logger.info('Order #%s: self.checkout_session.checkout_token:else: '+str(method), order_number)
# Store card if user wants to store card
if self.checkout_session.store_card():
logger.info('Order #%s: self.checkout_session.store_card '+str(method), order_number)
resp = bpoint_facade.create_token(user,invoice.reference,kwargs['bankcard'],True)
if self.checkout_session.invoice_association():
invoice.token = resp
Expand All @@ -308,27 +315,34 @@ def handle_payment(self, order_number, total, **kwargs):
bankcard.last_digits = bankcard.number[-4:]
resp = bpoint_facade.post_transaction(card_method,'internet','single',order_number,invoice.reference, total.incl_tax,bankcard)
else:
logger.info('Order #%s: self.checkout_session.store_card:else: '+str(method), order_number)
if self.checkout_session.invoice_association():
logger.info('Order #%s: self.checkout_session.invoice_association '+str(method), order_number)
resp = bpoint_facade.create_token(user,invoice.reference,kwargs['bankcard'])
invoice.token = resp
invoice.save()
else:
logger.info('Order #%s: self.checkout_session.invoice_association:else '+str(method), order_number)
bankcard = kwargs['bankcard']
bankcard.last_digits = bankcard.number[-4:]
resp = bpoint_facade.post_transaction(card_method,'internet','single',order_number,invoice.reference, total.incl_tax,bankcard)
if not self.checkout_session.invoice_association():
logger.info('Order #%s: if not self.checkout_session.invoice_association '+str(method), order_number)
# Record payment source and event
source_type, is_created = models.SourceType.objects.get_or_create(
name='Bpoint')
# amount_allocated if action is preauth and amount_debited if action is payment
if card_method == 'payment':
logger.info('Order #%s: card_method payment '+str(method), order_number)
source = source_type.sources.model(
source_type=source_type,
amount_debited=total.incl_tax, currency=total.currency)
elif card_method == 'preauth':
logger.info('Order #%s: card_method preauth '+str(method), order_number)
source = source_type.sources.model(
source_type=source_type,
amount_allocated=total.incl_tax, currency=total.currency)
logger.info('Order #%s: payment source '+str(method), order_number)
self.add_payment_source(source)
self.add_payment_event('Paid', total.incl_tax)
except Exception as e:
Expand Down

0 comments on commit 15a4d29

Please sign in to comment.