You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

39 lines
1.3 KiB

from django.core.management.base import BaseCommand, CommandError
from django.utils.timezone import now
from paymentwall.pingback import Pingback
from apps.payment.tasks import transaction_to_roistat
from apps.payment.models import Payment
import logging
logger = logging.getLogger(__name__)
class Command(BaseCommand):
help = 'Send '
def add_arguments(self, parser):
parser.add_argument(
'start_id', type=int,
help='Start payment id',
)
def handle(self, *args, **options):
start_id = options.get('start_id')
payments = Payment.objects.filter(id__gte=start_id, status__in=Payment.PW_PAID_STATUSES)
for payment in payments:
logger.info('TRANSACTION: ' + str(payment.id))
pingback = Pingback(payment.data)
splitted = pingback.get_product().get_id().split('_')
product_type_name, payment_id = '_'.join(splitted[:-1]), splitted[-1]
transaction_to_roistat(
payment.user.id,
payment.id,
f'{product_type_name.title()} payment',
payment.amount,
payment.update_at.strftime('%Y-%m-%d %H:%M:%S'),
pingback.get_type(),
product_type_name,
payment.roistat_visit,
)