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_ResponseChargeback 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     public function isSuccessful()
0040     {
0041         return $this->getStatus() == 'REFUNDED';
0042     }
0043 
0044     /**
0045      * @return mixed
0046      */
0047     public function getStatus()
0048     {
0049         return strtoupper($this->_rawResponse['payment_status']);
0050     }
0051 
0052     public function getTransactionId()
0053     {
0054         return $this->_rawResponse['parent_txn_id'];
0055     }
0056 
0057     public function getTransactionStatus()
0058     {
0059         return null;
0060     }
0061 
0062     public function getPaymentId()
0063     {
0064         return null;
0065     }
0066 
0067     /**
0068      * @param $name
0069      * @return mixed
0070      */
0071     public function getField($name)
0072     {
0073         return $this->_rawResponse[$name];
0074     }
0075 
0076     /**
0077      * @return array|null
0078      */
0079     public function getRawMessage()
0080     {
0081         return $this->_rawResponse;
0082     }
0083 
0084     public function getProviderName()
0085     {
0086         return 'paypal';
0087     }
0088 
0089     public function getTransactionAmount()
0090     {
0091         return $this->_rawResponse['mc_currency'] . ' ' . $this->_rawResponse['mc_gross'];
0092     }
0093 
0094     public function getTransactionReceiver()
0095     {
0096         return $this->_rawResponse['receiver_email'];
0097     }
0098 
0099     public function getCustom() {
0100         return null;
0101     }
0102 
0103 }