Ich habe die Identity API von PayPal in meine Webseite integriert. Wie üblich, wenn der Benutzer auf login with paypal
(JavaScript button) klickt, öffnet sich ein neues Fenster für den Login-Zweck. Aber nach einem gültigen Login leite ich mich in das gleiche Popup-Fenster um.PayPal leitet zum selben Popup-Fenster um
Hinweis: ersetzt ich meine Domain-Namen als domain
App Rückkehr URL (Test):http://domain.esy.es/index.php/users/paypalidentity
Ansicht
//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>
-Controller
//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());
Erfolgreiche Anmeldung
zum konfigurierten Umleitungs-URL Umleiten
Ziemlich sicher, dass Sie einen close() Trigger aus dem PayPal-Javascript auf Ihrer Return-URL hinzufügen müssen. In der Tat würde die Prozedur darin bestehen, eine separate Rücksprung-URL zu erzeugen, die nur diese close() -Aktion enthält. PayPal würde darauf umleiten, aber dann würde es sofort schließen und Sie mit dem Bildschirm zurücklassen, wie Sie wollen. Es ist detailliert in den Dokumenten. Lass mich sehen, ob ich es finden und eine offizielle Antwort schreiben kann. –
Letzte Antwort macht, was Sie verlangten - markieren Sie es. – kape123
Große Frage. Es ist Juni 2016 und PayPal hat noch nicht erklärt, wie es geht. – Green