Оба приведенных выше ответа верны.Однако техническая поддержка PayPal предоставила более подробный набор инструкций, которые я предоставил ниже.Надеемся, что они помогут кому-то еще.
Измените ваши вызовы SetExpressCheckout, чтобы параметры RETURNURL и CANCELURL указывали на специальную страницу возврата, которая будет обрабатывать закрытие всплывающего окна для вас и продолжение обычного процесса проверки (подробнееоб этом позже).
Затем измените скрипт, который перенаправляет покупателя на сайт PayPal.Обычно этот сценарий возвращает браузеру ответ «302 найдено» (или аналогичный), сообщающий браузеру, что он должен выполнить перенаправление на другую страницу.(В PHP это обычно выполняется с помощью функции «заголовка» - например, header(“Location: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=$token”);
.) Вместо этого этот скрипт должен генерировать следующий код HTML / JavaScript (заменяя «TOKEN» токеном, который вы получили от PayPal).Откроется всплывающее окно, в котором покупатель может продолжить процесс оплаты в PayPal.Вы можете вставить дополнительный текст, если хотите, чтобы указать покупателю, что он должен использовать всплывающее окно, чтобы завершить оформление заказа.Чтобы избежать проблем с блокировщиками всплывающих окон, вы можете создать на своей странице ссылку или кнопку, указывающую покупателю, что для продолжения нажмите ссылку / кнопку, и используйте этот код для обработчика объекта onClick.
<script type="text/javascript">
window.open("https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=TOKEN","_blank","width=1024,height=768,location=1,resizable=1,scrollbars=1,status=1",true);
</script>
Теперь создайте новую страницу, которая выполняет следующий код (или аналогичный - этот код основан на PHP, при необходимости настройте его для любого языка, который вы используете).Этот код закроет всплывающее окно и продолжит процесс оформления заказа в существующем iframe.Параметр RETURNURL вашего вызова SetExpressCheckout должен указывать на эту страницу.Замените «paypalreturn.php» сценарием, который вы в настоящее время используете для обработки покупателей, возвращающихся в вашу корзину из PayPal.
<html>
<body>
<script type="text/javascript">
window.opener.location="http://www.regattacentral.com/paypalreturn.php?token=<? echo $_REQUEST["token"]; ?>&PayerID=<? echo $_REQUEST["PayerID"]; ?>";
window.close();
</script>
</body>
</html>
Наконец, повторите этот шаг для вашего обработчика CANCELURL.
•покупка завершается внутри iframe, и отображается идентификатор транзакции для покупки.