lingo: add bank data to paid notification (#11213)

This commit is contained in:
Frédéric Péters 2016-06-06 19:48:38 +02:00
parent 5820af546d
commit 933eb2673c
3 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('lingo', '0019_auto_20160531_1336'),
]
operations = [
migrations.AddField(
model_name='transaction',
name='bank_transaction_id',
field=models.CharField(max_length=200, null=True),
),
]

View File

@ -220,6 +220,11 @@ class BasketItem(models.Model):
url = self.source_url + 'jump/trigger/%s?%s' % (status, params)
url = sign_url(url, key=service_dict.get('secret'))
message = {'result': 'ok'}
if status == 'paid':
transaction = item.transaction_set.filter(status=eopayment.PAID)[0]
message['order_id'] = transaction.order_id
message['transaction_id'] = transaction.bank_transaction_id
message['bank_data'] = transaction.bank_data
r = requests.post(url, data=json.dumps(message), timeout=3)
r.raise_for_status()
@ -272,6 +277,7 @@ class Transaction(models.Model):
end_date = models.DateTimeField(null=True)
bank_data = JSONField(blank=True)
order_id = models.CharField(max_length=200)
bank_transaction_id = models.CharField(max_length=200, null=True)
user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True)
status = models.IntegerField(null=True)
amount = models.DecimalField(default=0, max_digits=7, decimal_places=2)

View File

@ -276,6 +276,7 @@ class CallbackView(View):
except Transaction.DoesNotExist:
raise Http404
transaction.status = payment_response.result
transaction.bank_transaction_id = payment_response.transaction_id
transaction.bank_data = payment_response.bank_data
transaction.end_date = timezone.now()
transaction.save()