@vikholodov

Django и интеркасса, как принять POST?

Впервые настраиваю платежку, застрял на этапе обработки ответа от кассы.
Отправляю платеж в кассу стандартным методом через форму
Сделал url для обработки и указал его как URL взаимодействия в настройках кассы и написал вьюху для изменения статуса заказа в магазине:
@csrf_exempt
def payment_return(request):
	if request.method == 'POST':
		f = open('test.txt').write(request.ik_sign+' ik_pm_no')#файл не создается, значит ответ от кассы не прошел
		if reques.ik_inv_st == 'process':
			order = Order.objects.get(id=int(request.ik_pm_no))
			order.status = 'Ожидает прибытия в Калининград'
			order.save()
			mes = 'Tovary: '+str(request.ik_desc)+' oplacheny'
			requests.post('тут отправляю смс менеджеру',
	                          {'phones': str(tel), 'charset': 'utf-8', 'mes': mes})
			HttpResponse('200')
		else:
			HttpResponse('Error')	
	else:
		raise Http404

Ответ приходит 500, если стоит @csrf_exempt, если без него, то 403
  • Вопрос задан
  • 536 просмотров
Решения вопроса 1
@vikholodov Автор вопроса
request.POST['тут поле']
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
crazyzubr
@crazyzubr
Python backend-developer
Проблема скорее всего в этих строках:

HttpResponse('200')
else:
HttpResponse('Error')


Респонсы создаются, но никуда не передаются. Следует, конечно, писать так:

if some_condition:
    return HttpResponse('200')
else:
    return HttpResponse('Error')
Ответ написан
Astrohas
@Astrohas
Python/Django Developer
if reques.ik_inv_st == 'process':
request
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы