PayPal\Api\OpenIdSession::getAuthorizationUrl PHP Method

getAuthorizationUrl() public static method

Returns the PayPal URL to which the user must be redirected to start the authentication / authorization process.
public static getAuthorizationUrl ( string $redirectUri, array $scope, string $clientId, null $nonce = null, null $state = null, ApiContext $apiContext = null ) : string
$redirectUri string Uri on merchant website to where the user must be redirected to post paypal login
$scope array The access privilges that you are requesting for from the user. Pass empty array for all scopes.
$clientId string client id from developer portal See https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/detailed/#attributes for more
$nonce null
$state null
$apiContext PayPal\Rest\ApiContext Optional API Context
return string Authorization URL
    public static function getAuthorizationUrl($redirectUri, $scope, $clientId, $nonce = null, $state = null, $apiContext = null)
    {
        $apiContext = $apiContext ? $apiContext : new ApiContext();
        $config = $apiContext->getConfig();
        if ($apiContext->get($clientId)) {
            $clientId = $apiContext->get($clientId);
        }
        $clientId = $clientId ? $clientId : $apiContext->getCredential()->getClientId();
        $scope = count($scope) != 0 ? $scope : array('openid', 'profile', 'address', 'email', 'phone', 'https://uri.paypal.com/services/paypalattributes', 'https://uri.paypal.com/services/expresscheckout');
        if (!in_array('openid', $scope)) {
            $scope[] = 'openid';
        }
        $params = array('client_id' => $clientId, 'response_type' => 'code', 'scope' => implode(" ", $scope), 'redirect_uri' => $redirectUri);
        if ($nonce) {
            $params['nonce'] = $nonce;
        }
        if ($state) {
            $params['state'] = $state;
        }
        return sprintf("%s/signin/authorize?%s", self::getBaseUrl($config), http_build_query($params));
    }

Usage Example

 /**
  * @test
  */
 public function testLoginWithCustomConfig()
 {
     $redirectUri = 'http://mywebsite.com';
     $scope = array('this', 'that', 'and more');
     $expectedBaseUrl = "https://www.paypal.com/signin/authorize";
     $this->assertEquals($expectedBaseUrl . "?client_id=DummyId&response_type=code&scope=this+that+and+more+openid&redirect_uri=" . urlencode($redirectUri), OpenIdSession::getAuthorizationUrl($redirectUri, $scope, "DummyId", null, null, $this->context), "Failed case - custom config");
 }
All Usage Examples Of PayPal\Api\OpenIdSession::getAuthorizationUrl