Для # 1 - Единственное место, где мне нужно было поместить тег @csrf_exempt, было в представлении, которое вызывается return_url. PayPal на самом деле публикует много данных о платеже и по этому URL, по любой причине.
Для # 2 - Вы можете указать «настраиваемое» поле в paypal_dict, которое затем будет передано обратно в notify_url. Если вы продаете только с одного URL-адреса или конечной точки, будет очевидно, для чего предназначен платеж, в сочетании с указанным вами счетом. Но вы можете указать здесь дополнительное поле для работы. "Обнови всех пользователей!" это просто случайный пример, который есть в документации django-paypal.
Для # 3 - я использовал ngrok, как уже упоминалось в документации django-paypal (http://django -paypal.readthedocs.org / en / stable / standard / ipn.html # тестирование ). Я нашел его довольно простым в настройке, ничего не зная об инструменте до этого.
Кроме того - одна ошибка на постбэках, которая меня зацепила некоторое время, была следующей: я полагал, что PayPal не публиковал на моем notify_url, и я искал ответы, подобные этому.
В конце концов я понял, что PayPal на самом деле отправлял на мой notify_url, но мой локальный компьютер использовал старую версию SSL, которая не выполняла рукопожатие при отправке обратно в изолированную программную среду PayPal (чтобы получить результат VERIFIED / INVALID). Моя версия была 0.9.8, и им нужно что-то 1.0 или выше. Короче говоря, notify_url - это многоэтапный процесс, и проблема может заключаться в том, что PayPal делает первоначальную запись в notify_url.