PayPal重定向到同一个弹出窗口

bkm*_*ron 7 javascript php redirect paypal

我在我的网页中集成了PayPal的Identity API.像往常一样,当用户点击login with paypal(JavaScript按钮)时,它会打开一个用于登录目的的新窗口.但在有效登录后,它会将我重定向到同一个弹出窗口.

注意:我将我的域名替换为 domain

应用返回网址(测试): http ://domain.esy.es/index.php/users/paypalidentity

视图

//url http://domain.esy.es/index.php
<span id="paypalButton"></span>
<script src="https://www.paypalobjects.com/js/external/api.js"></script>
<script>
    paypal.use( ["login"], function(login) {
        login.render ({
            "appid": MYAPPID,
            "authend": "sandbox",
            "scopes": "openid email profile address phone https://uri.paypal.com/services/paypalattributes",
            "containerid": "paypalButton",
            "locale": "en-us",
            "returnurl": "http://domain.esy.es/index.php/users/paypalidentity"
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

调节器

//url http://domain.esy.es/index.php/users/paypalidentity
require_once __DIR__ . '/../../vendor/autoload.php';
$apicontext = new PPApiContext(array('mode' => 'sandbox'));
$code = $_REQUEST['code'];
$apicontext = new PPApiContext(array('mode' => 'sandbox'));
$params = array(
    'client_id' => MYCLIENTID,
    'client_secret' => MYSECRET,
    'code' => $code
);
$token = PPOpenIdTokeninfo::createFromAuthorizationCode($params,$apicontext);
$apicontext = new PPApiContext(array('mode' => 'sandbox'));
$params = array('access_token' => $token->getAccessToken());
$user = PPOpenIdUserinfo::getUserinfo($params,$apicontext);
$this->session->set_userdata(
    array(
        'name'=>$user->getName()
    )
);
redirect(base_url());
Run Code Online (Sandbox Code Playgroud)

成功登录 在此输入图像描述

重定向到配置的重定向URL 在此输入图像描述

Dre*_*ell 1

您需要在返回 URL 中添加关闭操作(并且很可能使用单独的 URL 作为返回 URL,其中只包含关闭操作)。

查看自适应支付文档。在该页面上查找“close”一词,它会直接带您进入介绍如何处理此问题的部分。

注意:您有责任在 PayPal 重定向到返回或取消 URL 中指定的页面后关闭迷你浏览器。PayPal 提供了一个 JavaScript 函数,您可以调用该函数来关闭 PayPal 迷你浏览器或灯箱。