Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Paypal Javascript登录按钮检索用户信息_Javascript_Php_Paypal - Fatal编程技术网

通过Paypal Javascript登录按钮检索用户信息

通过Paypal Javascript登录按钮检索用户信息,javascript,php,paypal,Javascript,Php,Paypal,我集成了paypal登录按钮(javascript按钮),当我点击它时,它会进入paypal站点进行身份验证 下面是我的贝宝按钮代码 <span id="paypal"></span> <script src="https://www.paypalobjects.com/js/external/api.js"></script> <script> var url = document.URL; p

我集成了paypal登录按钮(javascript按钮),当我点击它时,它会进入paypal站点进行身份验证

下面是我的贝宝按钮代码

       <span id="paypal"></span>

  <script src="https://www.paypalobjects.com/js/external/api.js"></script>
  <script>
    var url = document.URL;
    paypal.use( ["login"], function(login) {
       login.render ({
       "appid": "***",
       "authend": "sandbox",
        "scopes": "profile email address phone https://uri.paypal.com/services/paypalattributes",
        "containerid": "paypal",
        "locale": "en-us",
        "returnurl": "http://stereotribes.dev/login"
           });
      });
  </script>

var url=document.url;
paypal.use([“login”],函数(login){
login.render({
“appid”:“***”,
“authend”:“沙盒”,
“范围”:“配置文件电子邮件地址电话”https://uri.paypal.com/services/paypalattributes",
“集装箱运输”:“贝宝”,
“区域设置”:“en us”,
“返回URL”:http://stereotribes.dev/login"
});
});
成功验证后,它会再次将我重定向到服务器url

现在我的问题是如何在完成身份验证后接收用户信息

我在paypal网站上搜索过,但我不清楚如何检索用户信息

有人能帮我吗

提前感谢

看一看。当事务发生时,它会立即将事务数据发布到您在服务器上配置的侦听器脚本中,这样您就可以实时自动化更新数据库、发送电子邮件通知等任务

如果您需要返回URL上的可用数据,您可以使用,这与IPN非常相似。唯一的一点是,如果人们出于某种原因没有返回到您的返回URL,那么该代码将永远不会运行,因此不建议您从返回URL执行任何数据库更新、电子邮件通知或类似操作


同样,无论他们是否返回,IPN都将被触发,因此您可以放心,代码将按预期运行。

在浪费了一天之后,我提出了以下代码(解决方案),希望它可以节省一些人的时间

在我的返回url(“”)中,我编写了以下代码

if($_REQUEST['code']) {
    $model->getPaypalEmail($_REQUEST['code']);
}
$\u请求['code'](令牌)
将由paypal发送,我们已通过curl发送回相同的代码以确认身份

public function getPaypalEmail($code){
    if($code){
        $strGetCodePaypalLoginDetails = $code;

        if ($strGetCodePaypalLoginDetails != '') {
            // Change this curl_init url according to your environment.
            $ch = curl_init("https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice");
            $flag_result = 1;
            curl_setopt_array($ch, array(
                CURLOPT_POST => 1,
                CURLOPT_POSTFIELDS => 'client_id=********&client_secret=*****&grant_type=authorization_code&code=' . $strGetCodePaypalLoginDetails,
                CURLOPT_RETURNTRANSFER => 1
                    )
            );

            $arrResponse = curl_exec($ch);

            if ($arrResponse === false) {
                $arrResponseToken = 'Curl error: ' . curl_error($ch);
                $flag_result = 0;
            } else {
                //Operation completed without any errors
                $arrResponse = json_decode($arrResponse);
                $strAccess_Token = $arrResponse->{'access_token'};

                // Change this curl_init url according to your environment.
                $chToken = curl_init("https://api.sandbox.paypal.com/v1/identity/openidconnect/userinfo/?schema=openid&access_token=" . $strAccess_Token);

                curl_setopt_array($chToken, array(
                    CURLOPT_RETURNTRANSFER => 1
                        )
                );

                $arrResponseToken = curl_exec($chToken);

                if ($arrResponseToken === false) {
                    $arrResponseToken = 'Curl error: ' . curl_error($chToken);
                    $flag_result = 0;
                }
            }
        }

        $arrResponseToken = json_decode($arrResponseToken, true);

        print_r($arrResponseToken); //here you will get info from paypal
    }
}

在这里我不付款。我只想用户信息,如电子邮件,地址等…这就是我解释的。当您收到付款时,将触发IPN,它将包含您需要的关于付款人的所有详细信息。