File indexing completed on 2025-02-09 07:14:34

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 class Default_Model_DbTable_PaypalIpn extends Local_Model_Table
0023 {
0024     protected $_keyColumnsForRow = array('id');
0025     protected $_key = 'id';
0026     protected $_name = "paypal_ipn";
0027     
0028     public function addFromIpnMessage($ipnArray, $raw) {
0029         $data = array();
0030         
0031         if(isset($ipnArray['txn_type'])) {
0032         
0033             $data['txn_type'] = $ipnArray['txn_type'];
0034             $data['ipn_track_id'] = $ipnArray['ipn_track_id'];
0035             $data['txn_id'] = $ipnArray['txn_id'];
0036             $data['payer_email'] = $ipnArray['payer_email'];
0037             $data['payer_id'] = $ipnArray['payer_id'];
0038             $data['auth_amount'] = $ipnArray['auth_amount'];
0039             $data['mc_currency'] = $ipnArray['mc_currency'];
0040             $data['mc_fee'] = $ipnArray['mc_fee'];
0041             $data['mc_gross'] = $ipnArray['mc_gross'];
0042             $data['memo'] = $ipnArray['memo'];
0043             $data['payer_status'] = $ipnArray['payer_status'];
0044             $data['payment_date'] = $ipnArray['payment_date'];
0045             $data['payment_fee'] = $ipnArray['payment_fee'];
0046             $data['payment_status'] = $ipnArray['payment_status'];
0047             $data['payment_type'] = $ipnArray['payment_type'];
0048             $data['pending_reason'] = $ipnArray['pending_reason'];
0049             $data['reason_code'] = $ipnArray['reason_code'];
0050             $data['custom'] = $ipnArray['custom'];
0051             $data['raw'] = $raw;
0052         
0053         } else if(isset($ipnArray['action_type']) && $ipnArray['action_type'] == 'PAY') {
0054             $data['txn_type'] = $ipnArray['transaction_type'];
0055             $data['ipn_track_id'] = $ipnArray['tracking_id'];
0056             $data['txn_id'] = $ipnArray['transaction[0].id'];
0057             $data['payer_email'] = $ipnArray['transaction[0].receiver'];
0058             $data['payer_id'] = $ipnArray['transaction[0].id_for_sender_txn'];
0059             $data['auth_amount'] = $ipnArray['transaction[0].amount'];
0060             $data['memo'] = $ipnArray['memo'];
0061             $data['payer_status'] = $ipnArray['transaction[0].status_for_sender_txn'];
0062             $data['payment_date'] = $ipnArray['reversal_date'];
0063             $data['payment_status'] = $ipnArray['transaction[0].status'];
0064             $data['payment_type'] = $ipnArray['transaction[0].paymentType'];
0065             $data['pending_reason'] = $ipnArray['transaction[0].pending_reason'];
0066             $data['reason_code'] = $ipnArray['reason_code'];
0067             $data['custom'] = $ipnArray['custom'];
0068             $data['raw'] = $raw;
0069         } else {
0070             $data['raw'] = $raw;
0071         }
0072         
0073         $this->save($data);
0074         
0075     }
0076     
0077 }