File indexing completed on 2024-12-22 05:36:23
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_Dwolla_ResponseTransactionStatus implements Local_Payment_Dwolla_ResponseInterface 0024 { 0025 protected $_rawResponse; 0026 0027 protected $_msgBody; 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 string 0041 */ 0042 public function getMsgBody() 0043 { 0044 return $this->_msgBody; 0045 } 0046 0047 /** 0048 * @param string $msgBody 0049 */ 0050 public function setMsgBody($msgBody) 0051 { 0052 $this->_msgBody = $msgBody; 0053 } 0054 0055 public function isSuccessful() 0056 { 0057 return null; 0058 } 0059 0060 public function getTransactionId() 0061 { 0062 return $this->_rawResponse['Id']; 0063 } 0064 0065 public function getTransactionStatus() 0066 { 0067 return $this->getStatus(); 0068 } 0069 0070 public function getStatus() 0071 { 0072 return strtoupper($this->_rawResponse['Transaction']['Status']); 0073 } 0074 0075 public function getPaymentId() 0076 { 0077 return null; 0078 } 0079 0080 public function getRawMessage() 0081 { 0082 return $this->_rawResponse; 0083 } 0084 0085 public function getProviderName() 0086 { 0087 return 'dwolla'; 0088 } 0089 0090 public function verifySignature($secret) 0091 { 0092 // Get Dwolla's signature 0093 $headers = getallheaders(); 0094 $signature = $headers['X-Dwolla-Signature']; 0095 0096 // Calculate hash, and compare to the signature 0097 $hash = hash_hmac('sha1', $this->_msgBody, $secret); 0098 0099 return ($hash == $signature); 0100 0101 } 0102 0103 public function getTransactionAmount() 0104 { 0105 return $this->_rawResponse['Transaction']['Amount']; 0106 } 0107 0108 public function getTransactionReceiver() 0109 { 0110 return $this->_rawResponse['Transaction']['Destination']['Id']; 0111 } 0112 0113 0114 }