Подтвердить что ты не робот

Paypal Адаптивный платеж для мобильной сети

Im интегрирует API адаптивных платежей Paypal для мобильного сайта. Но когда я отправляю платеж на

https://www.paypal.com/webscr?cmd=_ap-payment&paykey=value

(для песочницы: https://www.sandbox.paypal.com/cgi-bin/webscr)

Он всегда перенаправляется на главную интернет-страницу Paypal. Не для веб-сайта Paypal Mobile. Как перенаправить клиента на мобильную сеть PayPal?

4b9b3361

Ответ 2

Лучший подход, который я нашел, - это мини-браузер. Но у меня было множество различных проблем на мобильных устройствах, реализующих его (именно это и предназначалось в первую очередь). Вы увидите много похожих вопросов об адаптивных платежах и о всех проблемах с использованием лайтбокса и мини-браузера.

Но НАКОНЕЦ... Я понял это по часам, часам, дням и дням! Это должно решить все проблемы всех разных разновидностей, если речь идет о проблемах с адаптивными платежами PayPal и о проблемах с:

  • Переадресованная страница PayPal по умолчанию не реагирует на мобильные устройства и выглядит ужасно на мобильных устройствах.
  • Лайтбокс "зависает" и не закрывается на некоторых мобильных устройствах.
  • Мини-браузер не закрывается после завершения оплаты или отмены.
  • Мини-браузер не перенаправляет на callBackFunction из paypal apdg.js script.
  • Не перенаправлять на returnUrl и cancelUrl после завершения оплаты (или при отмене)
  • Chrome для ios (iphones) не инициирует функцию обратного вызова, и поэтому после завершения или отмены платежа он просто удерживает вас на странице, на которой вы запустили страницу платежных платежей, которая не позволяет вам подтвердить успешность или неудачу платежа.

Drum roll пожалуйста.... здесь!! Это заменяет любую потребность в javascript файлах PayPal и т.д. Все, что вам нужно, это то, что ниже вместе с вашим собственным методом получения PayKey для добавления к URL-адресу перенаправления. Мой живой сайт с адаптивными платежами, работающими правильно с использованием кода ниже, https://www.trackabill.com.

<div>
    <?php $payUrl = 'https://www.paypal.com/webapps/adaptivepayment/flow/pay?expType=mini&paykey=' . $payKey ?>

    <button onclick="loadPayPalPage('<?php echo $payUrl; ?>')" title="Pay online with PayPal">PayPal</button>
</div>
<script>
    function loadPayPalPage(paypalURL)
    {
        var ua = navigator.userAgent;
        var pollingInterval = 0;
        var win;
        // mobile device
        if (ua.match(/iPhone|iPod|Android|Blackberry.*WebKit/i)) {
            //VERY IMPORTANT - You must use '_blank' and NOT name the window if you want it to work with chrome ios on iphone
                //See this bug report from google explaining the issue: https://code.google.com/p/chromium/issues/detail?id=136610
            win = window.open(paypalURL,'_blank');

            pollingInterval = setInterval(function() {
                if (win && win.closed) {
                    clearInterval(pollingInterval);
                    returnFromPayPal();
                }
            } , 1000);
        }
        else
        {
            //Desktop device
            var width = 400,
                height = 550,
                left,
                top;

            if (window.outerWidth) {
                left = Math.round((window.outerWidth - width) / 2) + window.screenX;
                top = Math.round((window.outerHeight - height) / 2) + window.screenY;
            } else if (window.screen.width) {
                left = Math.round((window.screen.width - width) / 2);
                top = Math.round((window.screen.height - height) / 2);
            }

            //VERY IMPORTANT - You must use '_blank' and NOT name the window if you want it to work with chrome ios on iphone
                //See this bug report from google explaining the issue: https://code.google.com/p/chromium/issues/detail?id=136610
            win = window.open(paypalURL,'_blank','top=' + top + ', left=' + left + ', width=' + width + ', height=' + height + ', location=0, status=0, toolbar=0, menubar=0, resizable=0, scrollbars=1');

            pollingInterval = setInterval(function() {
                if (win && win.closed) {
                    clearInterval(pollingInterval);
                    returnFromPayPal();
                }
            } , 1000);
        }
    }

    var returnFromPayPal = function()
    {
       location.replace("www.yourdomain.com/paypalStatusCheck.php");
        // Here you would need to pass on the payKey to your server side handle (use session variable) to call the PaymentDetails API to make sure Payment has been successful
        // based on the payment status- redirect to your success or cancel/failed page
    }
</script>

Ответ 3

На самом деле существует простое решение, которое не документировано нигде. Мы обсуждали с PayPal о том, чтобы добавить его некоторое время назад, поэтому мне интересно, в конце концов ли он был реализован.

В любом случае просто просто перенаправьте пользователя на следующий URL-адрес, и они будут перенаправлены обратно на ваш сайт по завершении:

https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/preapproval?preapprovalKey=PA-XXXXX&expType=redirect

Разница здесь заключается в использовании expType=redirect, а не в expType=mini. Я не уверен, когда это было добавлено, но после немного обратной инженерии и некоторых экспериментов у нас есть удивительно простое решение.

Ответ 4

что правильно - пользовательский интерфейс Adaptive Payments не оптимизирован для мобильных устройств. Но самое близкое к тому, что он предлагает, - это то, что мы называем опытом MiniBrowser. Вы можете попробовать и посмотреть, удовлетворит ли это ваши потребности. Вы можете найти руководство по эксплуатации здесь, на X.com: Внедрение опции Mini-Browser