Exemplo n.º 1
0
 private function runHandlers($httpConfig, $request)
 {
     $handler = new PPAuthenticationHandler();
     $handler->handle($httpConfig, $request);
     foreach ($this->handlers as $handlerClass) {
         $handler = new $handlerClass();
         $handler->handle($httpConfig, $request);
     }
 }
 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);
 }
 /**
  * @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());
 }
 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 {
                 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);
 }