4b24cba18b4f3f2bf3dc1afad5d9ff356cfdcbc4
[WP-Plugins/glm-member-db.git] /
1 <?php
2 namespace PayPal\Handler;
3 use PayPal\Auth\PPTokenAuthorization;
4 use PayPal\Auth\PPSubjectAuthorization;
5 use PayPal\Auth\Oauth\AuthSignature;
6 use PayPal\Handler\IPPHandler;
7 class PPCertificateAuthHandler implements IPPHandler {
8
9         public function handle($httpConfig, $request, $options) {
10
11                 $credential = $request->getCredential();
12                 if(!isset($credential)) {
13                         return;
14                 }
15                 
16                 $httpConfig->setSSLCert($credential->getCertificatePath(), $credential->getCertificatePassPhrase());
17                 $thirdPartyAuth = $credential->getThirdPartyAuthorization();
18         
19                 switch($request->getBindingType()) {
20                         case 'NV':
21                                 if(!$thirdPartyAuth || !$thirdPartyAuth instanceof PPTokenAuthorization) {
22                                         $httpConfig->addHeader('X-PAYPAL-SECURITY-USERID', $credential->getUserName());
23                                         $httpConfig->addHeader('X-PAYPAL-SECURITY-PASSWORD', $credential->getPassword());                                       
24                                         if($thirdPartyAuth) {
25                                                 $httpConfig->addHeader('X-PAYPAL-SECURITY-SUBJECT', $thirdPartyAuth->getSubject());
26                                         }
27                                 }
28                                 break;
29                         case 'SOAP':
30                                 if($thirdPartyAuth && $thirdPartyAuth instanceof PPTokenAuthorization) {
31                                         $securityHeader = '<ns:RequesterCredentials/>';
32                                 } else {
33                                         $securityHeader = '<ns:RequesterCredentials><ebl:Credentials>';
34                                         $securityHeader .= '<ebl:Username>' . $credential->getUserName() . '</ebl:Username>';
35                                         $securityHeader .= '<ebl:Password>' . $credential->getPassword() . '</ebl:Password>';                                   
36                                         if($thirdPartyAuth && $thirdPartyAuth instanceof PPSubjectAuthorization) {
37                                                 $securityHeader .= '<ebl:Subject>' . $thirdPartyAuth->getSubject() . '</ebl:Subject>';
38                                         }
39                                         $securityHeader .= '</ebl:Credentials></ns:RequesterCredentials>';
40                                         $request->addBindingInfo('securityHeader' , $securityHeader);
41                                 }
42                                 break;  
43                 }                               
44         }
45
46 }