Store PayPal transaction type
This commit is contained in:
parent
c7358239b1
commit
0a7bb7e963
|
@ -77,7 +77,8 @@ class Transaction(models.Model):
|
|||
category = models.TextField(blank=True, null=True)
|
||||
account_type = models.TextField(blank=True, null=True)
|
||||
info_source = models.TextField(blank=True, null=True)
|
||||
paypal_txn_id = models.CharField(max_length=17, blank=True, null=True)
|
||||
paypal_txn_id = models.CharField(max_length=17, blank=True, null=True, unique=True)
|
||||
paypal_txn_type = models.CharField(max_length=64, blank=True, null=True)
|
||||
paypal_payer_id = models.CharField(max_length=13, blank=True, null=True)
|
||||
|
||||
report_type = models.TextField(blank=True, null=True)
|
||||
|
|
|
@ -63,6 +63,7 @@ class TransactionSerializer(serializers.ModelSerializer):
|
|||
'user',
|
||||
'recorder',
|
||||
'paypal_txn_id',
|
||||
'paypal_txn_type',
|
||||
'paypal_payer_id',
|
||||
]
|
||||
|
||||
|
|
|
@ -122,6 +122,7 @@ def build_tx(data):
|
|||
payment_method=data.get('payment_type', 'unknown'),
|
||||
paypal_payer_id=data.get('payer_id', 'unknown'),
|
||||
paypal_txn_id=data.get('txn_id', 'unknown'),
|
||||
paypal_txn_type=data.get('txn_type', 'unknown'),
|
||||
reference_number=data.get('txn_id', 'unknown'),
|
||||
)
|
||||
|
||||
|
|
34
apiserver/import_paypal_txn_type.py
Executable file
34
apiserver/import_paypal_txn_type.py
Executable file
|
@ -0,0 +1,34 @@
|
|||
import django, sys, os
|
||||
os.environ['DJANGO_SETTINGS_MODULE'] = 'apiserver.settings'
|
||||
django.setup()
|
||||
|
||||
from urllib.parse import parse_qs
|
||||
|
||||
from apiserver.api import models
|
||||
|
||||
ipns = models.IPN.objects.all()
|
||||
transactions = models.Transaction.objects.filter(paypal_txn_id__isnull=False)
|
||||
txs = {}
|
||||
|
||||
for tx in transactions:
|
||||
txs[tx.paypal_txn_id] = tx
|
||||
|
||||
for ipn in ipns:
|
||||
data = parse_qs(ipn.data)
|
||||
|
||||
if data.get('payment_status', [False])[0] != 'Completed':
|
||||
continue
|
||||
|
||||
txn_id = data['txn_id'][0]
|
||||
txn_type = data['txn_type'][0]
|
||||
|
||||
print('Processing tx id:', txn_id, '| type:', txn_type)
|
||||
|
||||
txs[txn_id].paypal_txn_type = txn_type
|
||||
|
||||
print('Performing bulk update...')
|
||||
transactions.bulk_update(txs.values(), ['paypal_txn_type'])
|
||||
|
||||
print('Processed', ipns.count(), 'IPNs.')
|
||||
|
||||
print('Done.')
|
Loading…
Reference in New Issue
Block a user