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_ResponseTransactionReturned 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['SenderTransactionId'];
0063     }
0064 
0065     public function getTransactionStatus()
0066     {
0067         return $this->getStatus();
0068     }
0069 
0070     public function getStatus()
0071     {
0072         return strtoupper($this->_rawResponse['Subtype']);
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 null;
0106     }
0107 
0108     public function getTransactionReceiver()
0109     {
0110         return null;
0111     }
0112 
0113 
0114 }