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 {
9 public function handle($httpConfig, $request, $options) {
11 $credential = $request->getCredential();
12 if(!isset($credential)) {
16 $httpConfig->setSSLCert($credential->getCertificatePath(), $credential->getCertificatePassPhrase());
17 $thirdPartyAuth = $credential->getThirdPartyAuthorization();
19 switch($request->getBindingType()) {
21 if(!$thirdPartyAuth || !$thirdPartyAuth instanceof PPTokenAuthorization) {
22 $httpConfig->addHeader('X-PAYPAL-SECURITY-USERID', $credential->getUserName());
23 $httpConfig->addHeader('X-PAYPAL-SECURITY-PASSWORD', $credential->getPassword());
25 $httpConfig->addHeader('X-PAYPAL-SECURITY-SUBJECT', $thirdPartyAuth->getSubject());
30 if($thirdPartyAuth && $thirdPartyAuth instanceof PPTokenAuthorization) {
31 $securityHeader = '<ns:RequesterCredentials/>';
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>';
39 $securityHeader .= '</ebl:Credentials></ns:RequesterCredentials>';
40 $request->addBindingInfo('securityHeader' , $securityHeader);