File indexing completed on 2025-05-04 05:32:13

0001 <?php
0002 /**
0003  *  ocs-webserver
0004  *
0005  *  Copyright 2016 by pling GmbH.
0006  *
0007  *    This file is part of ocs-webserver.
0008  *
0009  *    This program is free software: you can redistribute it and/or modify
0010  *    it under the terms of the GNU Affero General Public License as
0011  *    published by the Free Software Foundation, either version 3 of the
0012  *    License, or (at your option) any later version.
0013  *
0014  *    This program is distributed in the hope that it will be useful,
0015  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0016  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0017  *    GNU Affero General Public License for more details.
0018  *
0019  *    You should have received a copy of the GNU Affero General Public License
0020  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0021  **/
0022 
0023 class Local_Payment_PayPal_AdaptivePayment_ResponsePay implements Local_Payment_PayPal_PaymentInterface
0024 {
0025 
0026     /** @var array|null */
0027     protected $_rawResponse;
0028 
0029     /**
0030      * @param array|null $rawResponse
0031      */
0032     function __construct($rawResponse = null)
0033     {
0034         if (isset($rawResponse)) {
0035             $this->_rawResponse = $rawResponse;
0036         }
0037     }
0038 
0039     /**
0040      * @return bool
0041      */
0042     public function isSuccessful()
0043     {
0044         return $this->getStatus() == 'COMPLETED';
0045     }
0046 
0047     /**
0048      * @return mixed
0049      */
0050     public function getStatus()
0051     {
0052         return strtoupper($this->_rawResponse['status']);
0053     }
0054 
0055     /**
0056      * @return mixed
0057      */
0058     public function getTransactionId()
0059     {
0060         return $this->_rawResponse['transaction'][0]['id'];
0061     }
0062 
0063     public function getTransactionStatus()
0064     {
0065         return strtoupper($this->_rawResponse['transaction'][0]['status']);
0066     }
0067     
0068     public function getTransactionForSenderStatus()
0069     {
0070         return strtoupper($this->_rawResponse['transaction'][0]['status_for_sender_txn']);
0071     }
0072 
0073     /**
0074      * @return mixed
0075      */
0076     public function getPaymentId()
0077     {
0078         return $this->_rawResponse['pay_key'];
0079     }
0080 
0081     /**
0082      * @param $name
0083      * @return mixed
0084      */
0085     public function getField($name)
0086     {
0087         return $this->_rawResponse[$name];
0088     }
0089 
0090     /**
0091      * @return array|null
0092      */
0093     public function getRawMessage()
0094     {
0095         return $this->_rawResponse;
0096     }
0097 
0098     /**
0099      * @return string
0100      */
0101     public function getProviderName()
0102     {
0103         return 'paypal';
0104     }
0105 
0106     public function getTransactionAmount()
0107     {
0108         return $this->_rawResponse['transaction'][0]['amount'];
0109     }
0110 
0111     public function getTransactionReceiver()
0112     {
0113         return $this->_rawResponse['transaction'][0]['receiver'];
0114     }
0115 
0116     public function getCustom() {
0117         return null;
0118     }
0119 
0120 }