Paypal Sandbox не отправляет IPN обратно на django через туннель ngrok, но работает нормально на IPN Simulator
У меня есть приложение django, которое использует django-paypal для управления платежами и запускает определенные действия с помощью signals.py, когда платеж получен
@receiver(valid_ipn_received)
def payment_notification(sender, **kwargs):
ipn = sender
if ipn.payment_status == 'Completed':
# payment was successful, do something
Для того чтобы протестировать его локально, я использую ngrok для того, чтобы открыть локальный сервер для сервисов Paypal.
При использовании IPN Simulator все работает нормально, и сигнал в платформе django срабатывает.
Однако, когда я взаимодействую с песочницей при тех же условиях, я не получаю IPN обратно от Payal после завершения платежа. На приборной панели бизнес-счета песочницы я вижу, что платеж получен, но просматривая историю IPN с того же счета, я замечаю, что Paypal не может отправить IPN, заявляя о "неудачной операции" без дополнительной информации (даже кода ошибки с сервера).
Самое странное, что поток песочницы работал как шарм до двух дней назад. Теперь я могу тестировать только через IPN Simulator.
Что я делаю не так?
Хотя это не совсем техническое решение, я думаю, стоит проследить, как была решена эта проблема. Оказалось, что это была ошибка на стороне Paypal, поэтому, как предложил Патрик Щепаньски в комментариях, в данном случае помогло обращение в техническую поддержку Paypal. Они решили проблему в считанные часы.