PayPal\Handler\PPPlatformServiceHandler::handle PHP Method

handle() public method

public handle ( $httpConfig, $request, $options )
    public function handle($httpConfig, $request, $options)
    {
        parent::handle($httpConfig, $request, $options);
        if (is_string($this->apiUsername) || is_null($this->apiUsername)) {
            // $apiUsername is optional, if null the default account in config file is taken
            $credMgr = PPCredentialManager::getInstance($options['config']);
            $request->setCredential(clone $credMgr->getCredentialObject($this->apiUsername));
        } else {
            $request->setCredential($this->apiUsername);
        }
        $config = $options['config'];
        $credential = $request->getCredential();
        //TODO: Assuming existence of getApplicationId
        if ($credential && $credential->getApplicationId() != null) {
            $httpConfig->addHeader('X-PAYPAL-APPLICATION-ID', $credential->getApplicationId());
        }
        if (isset($config['port']) && isset($config['service.EndPoint.' . $options['port']])) {
            $endpoint = $config['service.EndPoint.' . $options['port']];
        } else {
            if (isset($config['service.EndPoint'])) {
                $endpoint = $config['service.EndPoint'];
            } else {
                if (isset($config['mode'])) {
                    if (strtoupper($config['mode']) == 'SANDBOX') {
                        $endpoint = PPConstants::PLATFORM_SANDBOX_ENDPOINT;
                    } else {
                        if (strtoupper($config['mode']) == 'LIVE') {
                            $endpoint = PPConstants::PLATFORM_LIVE_ENDPOINT;
                        } else {
                            if (strtoupper($config['mode']) == 'TLS') {
                                $endpoint = PPConstants::PLATFORM_TLS_ENDPOINT;
                            }
                        }
                    }
                } else {
                    throw new PPConfigurationException('endpoint Not Set');
                }
            }
        }
        $httpConfig->setUrl($endpoint . $options['serviceName'] . '/' . $options['apiMethod']);
        // Call the authentication handler to tack authentication related info
        $handler = new PPAuthenticationHandler();
        $handler->handle($httpConfig, $request, $options);
    }

Usage Example

 /**
  * @test
  */
 public function testSourceHeader()
 {
     $httpConfig = new PPHttpConfig();
     $handler = new PPPlatformServiceHandler(null, 'sdkname', 'sdkversion');
     $handler->handle($httpConfig, new PPRequest(new StdClass(), 'NV'), $this->options);
     $headers = $httpConfig->getHeaders();
     $this->assertArrayHasKey('X-PAYPAL-REQUEST-SOURCE', $headers);
     $this->assertRegExp('/.*sdkname.*/', $headers['X-PAYPAL-REQUEST-SOURCE']);
     $this->assertRegExp('/.*sdkversion.*/', $headers['X-PAYPAL-REQUEST-SOURCE']);
 }
PPPlatformServiceHandler