Автоматический возврат PayPal не возвращает никаких почтовых данных
У меня аналогичная проблема с этим сообщением
Настройка URL-адреса возврата PayPal и его автоматический возврат?
Однако решение там не работает. У нас настроен IPN, и переменные POST передаются обратно (посетитель нажимает назад и может загружать приобретенные PDF-файлы), но затем я попытался избавиться от страницы подтверждения заказа Paypal, на которой написано
Вы только что завершили платеж. Ваш идентификатор транзакции для этого платежа является: ХХХХХХХХХХХХХ.
И включил "Автоматический возврат" в Настройках оплаты веб-сайта, указав URL-адрес http://www.educted.ca/payment_complete.php , переменные POST теперь не передаются обратно в payment_complete.php - он показывает пустой. Как только я отключу "Автоматический возврат", переменные ЗАПИСИ будут отображаться правильно, и приобретенные товары можно будет загрузить. Конечно, я использую учетную запись Paypal в песочнице.
<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 answers
Если вы включите автоматический возврат, значения всегда будут возвращены с помощью GET, независимо от значения rm
.
Если вы хотите осуществить немедленную доставку файлов после того, как покупатель завершит транзакцию, ознакомьтесь с передачей платежных данных PayPal. После включения PDT добавляет tx
ПОЛУЧИТЬ 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 и, как таковой, немедленно.
Вы все еще можете сохранить значение автоматического возврата включенным, но убедитесь, что вы ОТКЛЮЧИЛИ PDT, и вы получите все переменные транзакции, отправленные на ваш URL-адрес возврата по ПОЧТЕ (если в вашем запросе для параметра rm установлено значение 2, конечно, как вы сказали, у вас есть).
По какой-то причине включение PDT будет игнорировать параметр rm и принудительно использовать метод GET.
В вашем конкретном случае он показывался пустым из-за ошибки в вашем коде:
<?php echo LIVE_SITE;>
Это не анализируется как допустимый PHP - это приведет к фатальной ошибке. Если информация еще не была выведена, а отчет об ошибках отключен, это будет пустая страница.
Вы все еще можете сохранить значение автоматического возврата включенным, но убедитесь, что вы ОТКЛЮЧИЛИ PDT, и вы получите все переменные транзакции, отправленные на ваш URL-адрес возврата по ПОЧТЕ (если в вашем запросе для параметра rm установлено значение 2, конечно, как вы сказали, у вас есть).
Это правильный ответ! Вы не должны разрешать отправку платежных данных с автоматическим ответом, если хотите получать почтовые данные.
НО в этом случае вам придется использовать https-сайт, иначе клиент получит предупреждение до перенаправление!