|
|
|
|
@ -257,28 +257,41 @@ class YandexCheckView(APIView): |
|
|
|
|
val = i.split('=')[1] |
|
|
|
|
data[key] = val |
|
|
|
|
|
|
|
|
|
logger_yandex.info(data) |
|
|
|
|
logger_yandex.info('Проверка платежа запрос', exc_info=True, extra={ |
|
|
|
|
'request': data, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
pay = Payment.objects.get(order_number=data['orderNumber']) |
|
|
|
|
except Payment.DoesNotExist: |
|
|
|
|
logger_yandex.error("Payment with id=%s not found" % data['orderNumber']) |
|
|
|
|
logger_yandex.error('Ошибка проверки платежа', exc_info=True, extra={ |
|
|
|
|
'request': "Payment with id=%s not found" % data['orderNumber'], |
|
|
|
|
}) |
|
|
|
|
return Response(status=204) |
|
|
|
|
|
|
|
|
|
if not pay.status == Payment.STATUS.PROCESSED: |
|
|
|
|
logger_yandex.error("Payment with id=%s have status %s" % (data['orderNumber'], pay.status)) |
|
|
|
|
logger_yandex.error('Ошибка проверки платежа', exc_info=True, extra={ |
|
|
|
|
'request': "Payment with id=%s have status %s" % (data['orderNumber'], pay.status), |
|
|
|
|
}) |
|
|
|
|
return Response(status=204) |
|
|
|
|
|
|
|
|
|
if not pay.shop_id == int(data['shopId']): |
|
|
|
|
logger_yandex.error("ShopId=%s not match" % (data['shopId'],)) |
|
|
|
|
logger_yandex.error('Ошибка проверки платежа', exc_info=True, extra={ |
|
|
|
|
'request': "ShopId=%s not match" % (data['shopId'],), |
|
|
|
|
}) |
|
|
|
|
return Response(status=204) |
|
|
|
|
|
|
|
|
|
if not pay.scid == int(data['scid']): |
|
|
|
|
logger_yandex.error("scid=%s not match" % (data['scid'],)) |
|
|
|
|
logger_yandex.error('Ошибка проверки платежа', exc_info=True, extra={ |
|
|
|
|
'request': "scid=%s not match" % (data['scid'],) |
|
|
|
|
}) |
|
|
|
|
return Response(status=204) |
|
|
|
|
|
|
|
|
|
if not pay.order_amount == float(data['orderSumAmount']): |
|
|
|
|
logger_yandex.error("Expected amount is %s received amount is %s" |
|
|
|
|
% (pay.order_amount, data['orderSumAmount'])) |
|
|
|
|
logger_yandex.error('Ошибка проверки платежа', exc_info=True, extra={ |
|
|
|
|
'request': "Expected amount is %s received amount is %s" |
|
|
|
|
% (pay.order_amount, data['orderSumAmount']), |
|
|
|
|
}) |
|
|
|
|
return Response(status=204) |
|
|
|
|
|
|
|
|
|
now = timezone.now() |
|
|
|
|
@ -288,7 +301,9 @@ class YandexCheckView(APIView): |
|
|
|
|
xml_res = """<checkOrderResponse performedDatetime="%s" code="0" invoiceId="%s" shopId="%s"/> |
|
|
|
|
""" % (pay.performed_datetime, str(data['invoiceId']), str(pay.shop_id)) |
|
|
|
|
|
|
|
|
|
logger_yandex.info(xml_res) |
|
|
|
|
logger_yandex.info('Проверка платежа ответ', exc_info=True, extra={ |
|
|
|
|
'request': xml_res, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
return HttpResponse(xml_res, content_type='application/xml') |
|
|
|
|
|
|
|
|
|
|