Джанго-ПайПал не получает сигналы - PullRequest
3 голосов
/ 25 марта 2011

У меня есть песочница PAYPAL, мой язык - python - Django и я использую django-paypal ipn tes на моем сервере, но когда кто-то пытается что-то купить, после процесса paypal в песочнице я не получаю сигнал, и в моемpaypal_ipn Я не вижу транзакции.Так что проблема в том, что я не получаю сигнал.Это мой сигнальный код в models.py

from paypal.standard.ipn.signals import payment_was_successful

def show_me_the_money(sender, **kwargs):
    code = sender.item_number
    type, number_product, pagamento_corso_id = code.split('_')
    obj = get_object_or_404(PagamentoCorso, int(pagamento_corso_id))
    obj.pagamento = True
    obj.save()

payment_was_successful.connect(show_me_the_money)

Пожалуйста, помогите мне, потому что это 7 дней ... и я очень расстроен!: -)

Ответы [ 3 ]

5 голосов
/ 26 марта 2011

Я думаю, вы можете использовать инструменты тестирования Paypal для отправки поддельных уведомлений на ваш URL-адрес. Это может облегчить отладку.

http://www.friendly -stranger.com / фото / paypal.jpg

Что вы также можете сделать, это запустить тесты, поставляемые с django-paypal. Это должно быть что-то вроде

python manage.py test paypal

Вы также можете взглянуть на тестовый код и создать свои собственные тесты для устранения вашей проблемы.

Если вы все еще не можете понять это, опубликуйте свою конфигурацию URL и представление, которое передает форму IPN в шаблон.

3 голосов
/ 30 апреля 2012

У меня была похожая проблема. В моем случае я мог видеть из журналов доступа, что PayPal имеет доступ к моему URL-адресу уведомления о платеже, и запросы 200 в порядке, но на стороне Django не было сигналов.

Оказалось, что платежи имели статус «Ожидание» вместо «Завершено» (и я не слушал сигнал paypal.standard.ipn.signals.payment_was_flagged).

Причина, по которой мои платежи были помечены, была неправильной settings.PAYPAL_RECEIVER_EMAIL и неправильной paypal_dict["business"] адресами электронной почты. Точно такая же проблема , как и у этого парня .

0 голосов
/ 15 декабря 2016

В моем случае причина была тривиальной - я добавил код обработчика сигнала в views.py, который не загружается автоматически, поэтому обработчик никогда не использовался и не подключался к сигналу.Самое простое, но уродливое решение - переместить их в models.py, рекомендуется использовать метод Django ready () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...