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 }