Система автоматического возврата PayPal не отправляет данные POST - PullRequest
8 голосов
/ 29 декабря 2011

У меня похожая проблема с этим сообщением

Задание URL возврата PayPal и автоматическое его возвращение?

Однако решение там не работает.У нас настроена IPN, и переменные POST возвращаются обратно (посетитель щелкает назад и может загрузить купленные PDF-файлы), но затем я попытался избавиться от страницы подтверждения заказа Paypal, на которой написано

, простозавершил ваш платеж.Идентификатор вашей транзакции для этого платежа: XXXXXXXXXXXXX.

и включен «Автоматический возврат» в настройках платежа веб-сайта, с указанием URL http://www.educted.ca/payment_complete.php, переменные POST теперь не возвращаются в payment_complete.php - показывает пустойКак только я отключаю «Автовозврат», переменные POST отображаются правильно, и приобретенные продукты могут быть загружены.Конечно, я пользуюсь учетной записью Paypal Sandbox.

<input type="hidden" name="return" value="<?php echo LIVE_SITE;>payment_complete.php">
<input type="hidden" name="cancel_return" value="<?php echo LIVE_SITE; ?>catalog.php">
<input type="hidden" name="notify_url" value="<?php echo LIVE_SITE; ?>ipn.php">
<input type="hidden" name="rm" value="2">

Есть идеи?

Ответы [ 4 ]

14 голосов
/ 29 декабря 2011

Если вы включите автоматический возврат, значения всегда будут возвращаться через GET, независимо от того, для чего установлено значение rm.

Если вы хотите выполнить немедленную доставку файла после того, как покупатель завершил транзакцию, обратите внимание на PayPal Payment Data Transfer. После включения PDT добавляет tx GET var к вашему обратному URL; позвонив в PayPal по номеру https://www.paypal.com/cgi-bin/webscr?cmd=_notify-synch&tx=value-for-tx-here&at=value-for-your-paypal-account-authentication-token, вы сможете получить дополнительные данные о транзакции и сразу проверить, действительна ли она.
Смотри также https://www.paypal.com/pdt/

IPN должен быть зарезервирован для серверной обработки, так как он может прийти со значительной задержкой.
PDT, с другой стороны, заставляет вас извлекать информацию из PayPal и, таким образом, немедленно.

4 голосов
/ 13 августа 2013

Вы все еще можете оставить для Auto Return значение On, но убедитесь, что вы отключили PDT, и вы получите все переменные транзакции, отправленные на ваш URL-адрес возврата через POST (если в вашем запросе для параметра rm установлено значение 2, конечно, как вы и сказали).

По некоторым причинам включение PDT игнорирует параметр rm и вынуждает использовать метод GET.

1 голос
/ 12 декабря 2014

Вы по-прежнему можете оставить для Auto Return значение On, но убедитесь, что вы отключили PDT, и вы получите все переменные транзакции, отправленные на ваш URL-адрес возврата через POST (если для параметра rm установлено значение 2 в вашемпросьба, конечно, как вы сказали, что у вас есть).

Это правильный ответ!Вы не должны разрешать отправку данных платежа с автоответчиком, если хотите получить POST-данные.

НО, в этом случае вам нужно использовать https-сайт, в противном случае клиент получит предупреждение перед перенаправлением!

1 голос
/ 17 декабря 2013

В вашем конкретном случае он отображался пустым из-за ошибки в вашем коде:

<?php echo LIVE_SITE;>

Это не анализируется как действительный PHP - это приведет к фатальной ошибке. Если информация еще не выведена и отчеты об ошибках отключены, это будет пустая страница.

...