|
|
|
@ -1,14 +1,8 @@ |
|
|
|
import logging |
|
|
|
import logging |
|
|
|
import os |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import requests |
|
|
|
|
|
|
|
from dateutil.relativedelta import relativedelta |
|
|
|
|
|
|
|
from django.conf import settings |
|
|
|
|
|
|
|
from django.core.management.base import BaseCommand |
|
|
|
from django.core.management.base import BaseCommand |
|
|
|
from django.utils import timezone |
|
|
|
|
|
|
|
from yandex_money.models import Payment |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from finance.models import InvoiceRebilling |
|
|
|
from finance.tasks import periodic_billing |
|
|
|
|
|
|
|
|
|
|
|
logger_yandex = logging.getLogger('yandex_money') |
|
|
|
logger_yandex = logging.getLogger('yandex_money') |
|
|
|
|
|
|
|
|
|
|
|
@ -18,31 +12,4 @@ class Command(BaseCommand): |
|
|
|
def handle(self, *args, **options): |
|
|
|
def handle(self, *args, **options): |
|
|
|
logger_yandex.info("start console repeat payment command") |
|
|
|
logger_yandex.info("start console repeat payment command") |
|
|
|
print('Started') |
|
|
|
print('Started') |
|
|
|
invoices = InvoiceRebilling.objects.filter(method='Y').exclude(status='F') |
|
|
|
periodic_billing() |
|
|
|
for invoice in invoices.filter( |
|
|
|
|
|
|
|
expected_date__gt=timezone.now(), expected_date__lt=timezone.now() + relativedelta(days=1)): |
|
|
|
|
|
|
|
print('invoice', invoice) |
|
|
|
|
|
|
|
user = invoice.bill.user |
|
|
|
|
|
|
|
yandex_pay = Payment.objects.create( |
|
|
|
|
|
|
|
order_amount=invoice.price, |
|
|
|
|
|
|
|
customer_number=user.id, |
|
|
|
|
|
|
|
user=user, |
|
|
|
|
|
|
|
cps_email=user.email |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
invoice.yandex_pay = yandex_pay |
|
|
|
|
|
|
|
invoice.save() |
|
|
|
|
|
|
|
resp = requests.post( |
|
|
|
|
|
|
|
settings.YANDEX_MONEY_MWS_URL + 'repeatCardPayment', |
|
|
|
|
|
|
|
data={ |
|
|
|
|
|
|
|
'clientOrderId': invoice.id, # уникальное возрастающее целое число |
|
|
|
|
|
|
|
'invoiceId': invoice.key, |
|
|
|
|
|
|
|
'amount': invoice.price, |
|
|
|
|
|
|
|
'orderNumber': invoice.yandex_pay.order_number |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
cert=( |
|
|
|
|
|
|
|
os.path.join(settings.SSL_ROOT, 'skillbox.cer'), |
|
|
|
|
|
|
|
os.path.join(settings.SSL_ROOT, 'skillbox.key') |
|
|
|
|
|
|
|
), |
|
|
|
|
|
|
|
verify=os.path.join(settings.SSL_ROOT, 'yamoney_chain.cer') |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
print(resp) |
|
|
|
|
|
|
|
|