/** * @test */ public function testValidConfiguration() { $credential = new PPSignatureCredential('user', 'pass', 'sign'); $credential->setThirdPartyAuthorization(new PPTokenAuthorization('accessToken', 'tokenSecret')); $options = array('config' => array('mode' => 'sandbox'), 'serviceName' => 'DoExpressCheckout', 'port' => 'PayPalAPI'); $req = new PPRequest(new StdClass(), 'SOAP'); $req->setCredential($credential); $httpConfig = new PPHttpConfig('http://api.paypal.com'); $handler = new PPAuthenticationHandler(); $handler->handle($httpConfig, $req, $options); $this->assertArrayHasKey('X-PP-AUTHORIZATION', $httpConfig->getHeaders()); $options['port'] = 'abc'; $handler->handle($httpConfig, $req, $options); $this->assertArrayHasKey('X-PAYPAL-AUTHORIZATION', $httpConfig->getHeaders()); unset($options['port']); $handler->handle($httpConfig, $req, $options); $this->assertArrayHasKey('X-PAYPAL-AUTHORIZATION', $httpConfig->getHeaders()); }
private function runHandlers($httpConfig, $request) { $this->getOptions(); foreach ($this->handlers as $handlerClass) { $handler = new $handlerClass(); $handler->handle($httpConfig, $request, $this->options); } $handler = new PPAuthenticationHandler(); $handler->handle($httpConfig, $request, $this->options); }
public function handle($httpConfig, $request, $options) { parent::handle($httpConfig, $request, $options); $config = $options['config']; 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); } $endpoint = ''; $credential = $request->getCredential(); if (isset($options['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') { if ($credential instanceof PPSignatureCredential) { $endpoint = PPConstants::MERCHANT_SANDBOX_SIGNATURE_ENDPOINT; } else { if ($credential instanceof PPCertificateCredential) { $endpoint = PPConstants::MERCHANT_SANDBOX_CERT_ENDPOINT; } } } else { if (strtoupper($config['mode']) == 'LIVE') { if ($credential instanceof PPSignatureCredential) { $endpoint = PPConstants::MERCHANT_LIVE_SIGNATURE_ENDPOINT; } else { if ($credential instanceof PPCertificateCredential) { $endpoint = PPConstants::MERCHANT_LIVE_CERT_ENDPOINT; } } } } } else { throw new PPConfigurationException('endpoint Not Set'); } } } if ($request->getBindingType() == 'SOAP') { $httpConfig->setUrl($endpoint); } else { throw new PPConfigurationException('expecting service binding to be SOAP'); } $request->addBindingInfo("namespace", "xmlns:ns=\"urn:ebay:api:PayPalAPI\" xmlns:ebl=\"urn:ebay:apis:eBLBaseComponents\" xmlns:cc=\"urn:ebay:apis:CoreComponentTypes\" xmlns:ed=\"urn:ebay:apis:EnhancedDataTypes\""); // Call the authentication handler to tack authentication related info $handler = new PPAuthenticationHandler(); $handler->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); }