Собственно, суть моей проблемы в заголовке. Нужно принимать HTTP-запрос, приходящий после перевода на Яндекс.Деньги. Для этих целей зашел в настройки уведомления:
https://money.yandex.ru/myservices/online.xml
В поле адреса указал ссылку на представление-обработчик, а если точнее, то
rankoff.pythonanywhere.com/order/check_order/.
Для теста взял переменную test_notification, которая, если я верно понял документацию, должна быть в запросе. Вот ссылка на документ:
https://tech.yandex.ru/money/doc/dg/reference/noti...
Вот только не приходит ничего. Не подскажете, в чем может быть проблема?
Код представления, которое принимает уведомление
def CheckOrder(request):
if request.method=='POST':
changed_good = Product.objects.get(pk=1)
changed_good.description='Проверка' #Для проверки факта, что запрос вообще пришел на сервер
changed_good.save()
amount = request.POST.get('amount')
sender = request.POST.get('sender')
note = ''
if request.POST.get('test_notification'):
note = request.POST.get('test_notification')
mail_host = 'oriflamesender@gmail.com'
recipients= ['a_igin@mail.ru',]
message = '''
Вам пришел перевод! Вот данные:
Сумма:{0}
Отправитель:{1}
Секретный код: {2}'''.format(amount, sender, note)
subject= 'Данные о переводе'
send_mail(subject, message, mail_host, recipients, fail_silently=False)
return redirect('/')
Карточка объекта Product, указанная в начале представления, нужна мне, чтобы видеть, что письмо вообще пришло и начало обрабатываться. Но даже карточка не меняется, то есть то ли условие if не выполнено, то ли вообще ссылка в настройках Яндекса указана неправильно. Для проверки прилагаю два файла urls.
Главный urls.pyurlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^cart/', include('shop_cart.urls', namespace='cart')),
url(r'^order/', include('orders.urls', namespace='orders')),
url(r'', include('main_site.urls')),
] +static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urls.py приложения orderurlpatterns = [
url(r'^create/$', views.OrderCreate, name='OrderCreate'),
url(r'^payment/$', views.Payment, name='Payment'),
url(r'^check_order/$', views.CheckOrder, name='CheckOrder'),
]
Что я сделал не так? Буду рад любым подсказкам.