Ho integrato l'API di identità di PayPal nella mia pagina web. Come al solito quando l'utente fa clic su login with paypal
(JavaScript button) apre una nuova finestra a scopo di accesso. Ma dopo un login valido mi reindirizza alla stessa finestra popup.PayPal reindirizza alla stessa finestra a comparsa
Nota: ho sostituito il mio nome di dominio come domain
URL di ritorno App (test):http://domain.esy.es/index.php/users/paypalidentity
View
//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());
successo Accesso
Riorientare l'URL di rinvio configurata
Abbastanza sicuro è necessario aggiungere un innesco close() dal javascript PayPal sul tuo URL di ritorno. In effetti, la procedura sarebbe quella di creare un URL di ritorno separato che non abbia altro che questa azione close() su di esso. PayPal reindirizzerebbe ad esso, ma poi si chiuderebbe immediatamente, lasciandoti dietro lo schermo come desideri. È dettagliato nei documenti. Fammi vedere se riesco a trovarlo e pubblicare una risposta ufficiale. –
L'ultima risposta fa ciò che hai chiesto: contrassegnalo. – kape123
Ottima domanda. È ora giugno 2016 e PayPal non ha ancora spiegato come farlo. – Green