/**
  * @test
  */
 public function testHeadersAddedForSOAP()
 {
     $options = array('config' => array('mode' => 'sandbox'), 'serviceName' => 'AdaptivePayments', 'apiMethod' => 'ConvertCurrency');
     $req = new PPRequest(new StdClass(), 'SOAP');
     $handler = new PPSignatureAuthHandler();
     // Test that no headers are added if no credential is passed
     $httpConfig = new PPHttpConfig();
     $handler->handle($httpConfig, $req, $options);
     $this->assertEquals('', $req->getBindingInfo('securityHeader'));
     // Test that the 3 token SOAP headers are added for first party API calls
     $req = new PPRequest(new StdClass(), 'SOAP');
     $req->setCredential(new PPSignatureCredential('user', 'pass', 'sign'));
     $handler->handle($httpConfig, $req, $options);
     $this->assertContains('<ebl:Username>', $req->getBindingInfo('securityHeader'));
     $this->assertContains('<ebl:Password>', $req->getBindingInfo('securityHeader'));
     $this->assertContains('<ebl:Signature>', $req->getBindingInfo('securityHeader'));
     // Test addition of 'subject' SOAP header for subject based third party auth
     $req = new PPRequest(new StdClass(), 'SOAP');
     $cred = new PPSignatureCredential('user', 'pass', 'sign');
     $cred->setThirdPartyAuthorization(new PPSubjectAuthorization('*****@*****.**'));
     $req->setCredential($cred);
     $handler->handle($httpConfig, $req, $options);
     $this->assertContains('<ebl:Username>', $req->getBindingInfo('securityHeader'));
     $this->assertContains('<ebl:Password>', $req->getBindingInfo('securityHeader'));
     $this->assertContains('<ebl:Signature>', $req->getBindingInfo('securityHeader'));
     $this->assertContains('<ebl:Subject>', $req->getBindingInfo('securityHeader'));
     // Test that no auth related HTTP headers (username, password, sign?) are
     // added for token based third party auth
     $req->getCredential()->setThirdPartyAuthorization(new PPTokenAuthorization('token', 'tokenSecret'));
     $handler->handle($httpConfig, $req, $options);
     $this->assertContains('<ns:RequesterCredentials/>', $req->getBindingInfo('securityHeader'));
     $this->assertEquals(0, count($httpConfig->getHeaders()));
 }
 public function testThirdPartyAuthorization()
 {
     $authorizerEmail = "*****@*****.**";
     $thirdPartyAuth = new PPSubjectAuthorization($authorizerEmail);
     $cred = new PPSignatureCredential("username", "pwd", "signature");
     $cred->setThirdPartyAuthorization($thirdPartyAuth);
     $this->assertEquals($cred->getThirdPartyAuthorization()->getSubject(), $authorizerEmail);
     $accessToken = "atoken";
     $tokenSecret = "asecret";
     $thirdPartyAuth = new PPTokenAuthorization($accessToken, $tokenSecret);
     $cred->setThirdPartyAuthorization($thirdPartyAuth);
     $this->assertEquals($cred->getThirdPartyAuthorization()->getAccessToken(), $accessToken);
     $this->assertEquals($cred->getThirdPartyAuthorization()->getTokenSecret(), $tokenSecret);
 }
 /**
  * @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());
 }
Ejemplo n.º 4
0
 		
 		 * `Request Envelope` - Information common to each API operation, such
 		 as the language in which an error message is returned.
 		 * `Invoice` - Merchant, payer, and invoice information.
 */
 $createInvoiceRequest = new CreateInvoiceRequest($requestEnvelope, $invoice);
 /*
 	 *  ## Creating service wrapper object
 		 Creating service wrapper object to make API call and loading
 		 Configuration::getAcctAndConfig() returns array that contains credential and config parameters
 */
 $invoiceService = new InvoiceService(Configuration::getAcctAndConfig());
 // required in third party permissioning
 if ($_POST['accessToken'] != null && $_POST['tokenSecret'] != null) {
     $cred = new PPSignatureCredential("jb-us-seller_api1.paypal.com", "WX4WTU3S8MY44S7F", "AFcWxV21C7fd0v3bYYYRCpSSRl31A7yDhhsPUU2XhtMoZXsWHFxu-RWy");
     $cred->setThirdPartyAuthorization(new PPTokenAuthorization($_POST['accessToken'], $_POST['tokenSecret']));
 }
 try {
     /*
     *  ## Making API call
     			 Invoke the appropriate method corresponding to API in service
     			 wrapper object
     */
     if ($_POST['accessToken'] != null && $_POST['tokenSecret'] != null) {
         $createInvoiceResponse = $invoiceService->CreateInvoice($createInvoiceRequest, $cred);
     } else {
         $createInvoiceResponse = $invoiceService->CreateInvoice($createInvoiceRequest);
     }
 } catch (Exception $ex) {
     require_once 'error.php';
     exit;